結果
| 問題 |
No.100 直列あみだくじ
|
| コンテスト | |
| ユーザー |
koyumeishi
|
| 提出日時 | 2014-12-12 00:31:10 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 965 bytes |
| コンパイル時間 | 758 ms |
| コンパイル使用メモリ | 77,092 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-11 20:52:47 |
| 合計ジャッジ時間 | 2,349 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 20 WA * 25 |
ソースコード
#include <iostream>
#include <vector>
#include <cstdio>
#include <sstream>
#include <map>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <ctime>
using namespace std;
bool solve(vector<int> &a){
int n = a.size();
vector<int> s(n);
for(int i=0; i<n; i++){
s[i] = i;
}
random_shuffle(s.begin(), s.end());
vector<bool> used(n, false);
bool valid = true;
for(int i=0; i<n; i++){
bool ok = false;
for(int j=0; j<n; j++){
if(i== s[j] || s[j] == a[i]) continue;
if(used[ s[j] ]) continue;
used[ s[j] ] = true;
ok = true;
break;
}
if(!ok) valid = false;
}
return valid;
}
int main(){
srand((unsigned)time(NULL));
int n;
cin >> n;
vector<int> a(n);
for(int i=0; i<n; i++){
cin >> a[i];
a[i]--;
}
bool valid = false;
for(int i=0; i<100 && !valid; i++){
valid |= solve(a);
}
cout << (valid?"Yes":"No") << endl;
return 0;
}
koyumeishi