Magic Stones

题面描述

输入/输出格式

英文原版题目

样例

这个可以证明,差分过后只会交换数的位置,而不会改变数值,所以我们可以对其进行差分,然后比较数值是否改变,即可,记住特判第一个点,差分第一个点是不会变得

代码

#include<bits/stdc++.h>
using namespace std;
int a[100010],b[100010],c[100010],d[100010];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=n;i++)
	cin>>c[i];
	if(a[1]!=c[1])
	{
		cout<<"No"<<endl;
		return 0;
	}
	for(int i=1;i<n;i++)
	{
		b[i]=a[i+1]-a[i];
		d[i]=c[i+1]-c[i];
	}
	sort(b+1,b+n);
	sort(d+1,d+n);
	for(int i=1;i<n;i++)
	{
		if(b[i]!=d[i])
		{
			cout<<"No"<<endl;
			return 0;
		}
	}
	cout<<"Yes"<<endl;
}

留下评论

通过 WordPress.com 设计一个这样的站点
从这里开始