結果
| 問題 | No.408 五輪ピック |
| コンテスト | |
| ユーザー |
srup٩(๑`н´๑)۶
|
| 提出日時 | 2016-08-07 05:04:02 |
| 言語 | C++11 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 1,432 bytes |
| 記録 | |
| コンパイル時間 | 521 ms |
| コンパイル使用メモリ | 81,848 KB |
| 実行使用メモリ | 394,880 KB |
| 最終ジャッジ日時 | 2026-05-07 13:13:26 |
| 合計ジャッジ時間 | 4,465 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 13 WA * 1 MLE * 18 |
ソースコード
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)
int n, m;
// vector<int> g[20001];
bool memo[20001][20001];
int main(void){
cin >> n >> m;
rep(i, m){
int a, b; scanf("%d %d", &a, &b);
a--; b--;
// g[a].push_back(b);
// g[b].push_back(a);
memo[a][b] = memo[b][a] = true;
}
/*
//1 - u - vとなるような辺を見つける
vector<pair<int, int> > d;
for(int u : g[0]){
for (int v : g[u]){
//頂点に戻るようなものは入れない
if(v != 0) d.push_back(make_pair(u, v));
}
}
*/
vector<pair<int, int> > d;
for (int u = 1; u < n; ++u){
if(memo[0][u]){
for (int v = 0; v < n; ++v){
if(memo[u][v]){
d.push_back(make_pair(u, v));
}
}
}
}
for (int i = 0; i < d.size() - 1; ++i){
for (int j = i + 1; j < d.size(); ++j){
if(d[i].first != d[j].first && d[i].first != d[j].second &&
d[i].second != d[j].first && d[i].second != d[j].second){
if(memo[d[i].second][d[j].second]){
printf("YES\n");
return 0;
}
}
}
}
printf("NO\n");
return 0;
}
srup٩(๑`н´๑)۶