cf1110E 思维

/*
Ci'=Ci+1 + Ci-1 -Ci
Ci+1 - Ci' = Ci - Ci-1
Ci' - Ci-1 = Ci+1 - Ci;
即求一次Ci’等价于交换Ci和Ci-1 与 Ci+1和Ci的差值
那么只要差值排序后的数组是相同的即可 
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
vector<int>v1,v2;
int a[maxn],b[maxn],n; 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)cin>>b[i];
    for(int i=1;i<n;i++)
        v1.push_back(a[i+1]-a[i]),v2.push_back(b[i+1]-b[i]);
    sort(v1.begin(),v1.end());
    sort(v2.begin(),v2.end());
    if(a[0]==b[0] && a[n]==b[n] && v1==v2)puts("Yes");
    else printf("No");    
} 

猜你喜欢

转载自www.cnblogs.com/zsben991126/p/10356131.html