結果
問題 | No.2254 Reverse Only |
ユーザー | 0214sh7 |
提出日時 | 2023-03-24 22:53:04 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,256 bytes |
コンパイル時間 | 2,153 ms |
コンパイル使用メモリ | 209,244 KB |
実行使用メモリ | 12,764 KB |
最終ジャッジ日時 | 2023-10-18 21:24:02 |
合計ジャッジ時間 | 8,020 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge14 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
4,348 KB |
testcase_01 | AC | 2 ms
4,348 KB |
testcase_02 | AC | 2 ms
4,348 KB |
testcase_03 | AC | 2 ms
4,348 KB |
testcase_04 | AC | 2 ms
4,348 KB |
testcase_05 | AC | 2 ms
4,348 KB |
testcase_06 | AC | 2 ms
4,348 KB |
testcase_07 | AC | 1 ms
4,348 KB |
testcase_08 | AC | 153 ms
11,180 KB |
testcase_09 | AC | 159 ms
12,764 KB |
testcase_10 | AC | 135 ms
11,180 KB |
testcase_11 | AC | 153 ms
11,180 KB |
testcase_12 | AC | 152 ms
9,596 KB |
testcase_13 | AC | 153 ms
11,180 KB |
testcase_14 | AC | 154 ms
11,180 KB |
testcase_15 | AC | 154 ms
11,180 KB |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | AC | 152 ms
9,596 KB |
testcase_19 | AC | 146 ms
11,180 KB |
testcase_20 | AC | 153 ms
12,764 KB |
testcase_21 | AC | 151 ms
12,764 KB |
testcase_22 | AC | 78 ms
12,764 KB |
testcase_23 | AC | 141 ms
12,764 KB |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | AC | 6 ms
4,348 KB |
testcase_28 | AC | 34 ms
4,844 KB |
testcase_29 | AC | 70 ms
6,956 KB |
testcase_30 | AC | 62 ms
6,428 KB |
testcase_31 | AC | 36 ms
5,108 KB |
testcase_32 | AC | 40 ms
5,372 KB |
testcase_33 | AC | 19 ms
4,348 KB |
testcase_34 | AC | 91 ms
8,012 KB |
testcase_35 | AC | 58 ms
6,164 KB |
testcase_36 | AC | 130 ms
9,860 KB |
testcase_37 | AC | 136 ms
10,124 KB |
testcase_38 | AC | 29 ms
4,580 KB |
testcase_39 | AC | 120 ms
9,332 KB |
testcase_40 | AC | 6 ms
4,348 KB |
testcase_41 | AC | 53 ms
5,900 KB |
testcase_42 | AC | 31 ms
4,844 KB |
testcase_43 | AC | 97 ms
8,276 KB |
testcase_44 | AC | 143 ms
10,652 KB |
testcase_45 | AC | 88 ms
7,748 KB |
testcase_46 | AC | 5 ms
4,348 KB |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> PP; //#define MOD 1000000007 #define MOD 998244353 #define INF 2305843009213693951 //#define INF 810114514 #define PI 3.141592653589 #define setdouble setprecision #define REP(i,n) for(ll i=0;i<(n);++i) #define OREP(i,n) for(ll i=1;i<=(n);++i) #define RREP(i,n) for(ll i=(n)-1;i>=0;--i) #define ALL(v) (v).begin(), (v).end() #define GOODBYE do { cout << "-1" << endl; return 0; } while (false) #define MM <<" "<< #define Endl endl #define debug true #define debug2 false int main(void){ //cin.tie(nullptr); //ios::sync_with_stdio(false); ll N,K; cin >> N >> K; vector<ll> A(N),B(N); REP(i,N){cin >> A[i];} REP(i,N){cin >> B[i];} vector<ll> sA = A,sB = B; sort(ALL(sA)); sort(ALL(sB)); if(sA!=sB){ cout << "No" << endl; return 0; } vector<ll> rB = B;reverse(ALL(rB)); if(K<=N-2){ cout << "Yes" << endl; return 0; } if(K==N){ if(A==B || A==rB){ cout << "Yes" << endl; }else{ cout << "No" << endl; } return 0; } if(K>N){ if(A==B){ cout << "Yes" << endl; }else{ cout << "No" << endl; } return 0; } ll k = -1; REP(i,N){ if(A[i]==B[0]){ k = i; } } vector<ll> cA = A; REP(i,N){ cA[i] = A[(i+k)%N]; } if(cA == B){ cout << "Yes" << endl; return 0; } /*REP(i,N){cout << A[i] << " ";}cout << endl; REP(i,N){cout << cA[i] << " ";}cout << endl; REP(i,N){cout << rB[i] << " ";}cout << endl;*/ k = -1; REP(i,N){ if(A[i]==rB[0]){ k = i; } } REP(i,N){ cA[i] = A[(i+k)%N]; } if(cA == rB){ cout << "Yes" << endl; return 0; } cout << "No" << endl; /*ll N = 5,K = 3; cin >> N >> K; map<vector<ll>,ll> ind; ll now = 0; vector<ll> d(N); REP(i,N){d[i] = i;} do{ ind[d] = now; now++; }while(next_permutation(ALL(d))); queue<vector<ll>> que; vector<bool> enqueued(now,false); REP(i,N){d[i] = i;} que.push(d); enqueued[ind[d]] = true; while(!que.empty()){ vector<ll> t = que.front(); que.pop(); for(ll l=0;l<N;l++){ for(ll r=l;r<N;r++){ if((r-l+1)<K)continue; vector<ll> R = t; for(ll e=l;e<=r;e++){ R[e] = t[l+r-e]; } if(!enqueued[ind[R]]){ que.push(R); enqueued[ind[R]] = true; } } } } REP(i,N){d[i] = i;} ll c = 0; do{ if(enqueued[ind[d]]){ REP(i,N){ cout << d[i] << " "; } cout << endl; c++; } }while(next_permutation(ALL(d))); cout << c MM (now-c) << endl;*/ return 0; }