阅读量:0
Problem - 1955B - Codeforces
思路
因为b数组的顺序是乱的,所以要进行排序后,比较正确数组跟b数组是否一致
ac代码
#include<bits/stdc++.h> typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) using namespace std; int main() { IOS; int T; cin>>T; while(T--) { ll n,c,d; cin>>n>>c>>d; vector<ll> b(n*n); for(int i=0;i<n*n;i++) cin>>b[i]; sort(b.begin(),b.end()); vector<ll> p(n*n); p[0]=b[0]; for(int i=1;i<n;i++) p[i]=p[i-1]+c; for(int i=1;i<n;i++) { for(int j=0;j<n;j++) { p[i*n+j] = p[(i-1)*n+j]+d; } } sort(p.begin(),p.end()); if(b==p) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
注意
因为b.begin() , b.end(),所以下标从0开始