結果
問題 | No.101 ぐるぐる!あみだくじ! |
ユーザー |
![]() |
提出日時 | 2015-11-04 14:59:34 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,362 bytes |
コンパイル時間 | 775 ms |
コンパイル使用メモリ | 65,496 KB |
実行使用メモリ | 10,144 KB |
最終ジャッジ日時 | 2024-09-13 12:24:10 |
合計ジャッジ時間 | 16,830 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 33 TLE * 1 -- * 3 |
ソースコード
#include <iostream>#include <vector>#include <cstdio>#include <string>#include <queue>#include <algorithm>#include <cstring>using namespace std;typedef long long LL;#define MAX_N 101#define MAX_K 1001int N, K;int X[MAX_K], Y[MAX_K];void Input(){cin >> N;cin >> K;for(int i = 0; i < K; i++){cin >> X[i] >> Y[i];}}bool ChangeFlag[MAX_N];int List[2][MAX_N];void ExecAmida(vector<int>& AmidaList){for(int k = 0; k < K; k++){int x = X[k], y = Y[k];x--; y--;swap(AmidaList[x], AmidaList[y]);}}int Solve(){vector<int> AmidaList;for(int i = 1; i <= N; i++){AmidaList.push_back(i);List[0][i-1] = i-1;}//MakeAmidaExecExecAmida(AmidaList);vector<int> NextList;for(int i = 1; i <= N; i++){for(int j = 0; j < N; j++){if(AmidaList[j] == i){NextList.push_back(j);break;}}}//Debug/*for(int i = 0; i < N; i++){cerr << i << "->" << NextList[i] << endl;}*/int ret = 0;while(true){ret++;bool flag = true;for(int i = 0; i < N; i++){int nextPos = NextList[i];List[ret%2][nextPos] = List[(ret-1)%2][i];if(List[ret%2][nextPos] != nextPos){flag = false;}}if(flag)break;}return ret;}int main(){Input();cout << Solve() << endl;return 0;}