- 转换成差分数组,每一次操作其实对差分数组中的相邻两个元素进行交换。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1e5+5;
long long c[maxn],t[maxn],a1[maxn],a2[maxn],n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
scanf("%lld",&c[i]);
a1[i]=c[i]-c[i-1];
}
for(int i=1;i<=n;i++)
{
scanf("%lld",&t[i]);
a2[i]=t[i]-t[i-1];
}
if(c[1]!=t[1]||c[n]!=t[n])
{
cout<<"No";
return 0;
}
sort(a1+1,a1+1+n);
sort(a2+1,a2+1+n);
for(int i=1;i<=n;i++)
{
if(a1[i]!=a2[i])
{
cout<<"No";
return 0;
}
}
cout<<"Yes";
return 0;
}