結果

問題 No.408 五輪ピック
ユーザー rapurasu
提出日時 2016-08-06 00:01:46
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 49 ms
コード長 1,691 Byte
コンパイル時間 1,086 ms
使用メモリ 3,536 KB
最終ジャッジ日時 2018-10-18 21:18:02

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
00_example_01.in AC 4 ms
2,556 KB
00_example_02.in AC 4 ms
2,556 KB
00_example_03.in AC 4 ms
2,564 KB
00_example_04.in AC 4 ms
2,564 KB
00_example_05.in AC 4 ms
2,564 KB
10_rand_01.in AC 35 ms
3,076 KB
10_rand_02.in AC 25 ms
3,192 KB
10_rand_03.in AC 35 ms
3,300 KB
10_rand_04.in AC 30 ms
2,988 KB
10_rand_05.in AC 30 ms
3,088 KB
10_rand_06.in AC 25 ms
3,076 KB
10_rand_07.in AC 23 ms
3,040 KB
10_rand_08.in AC 40 ms
3,348 KB
10_rand_09.in AC 36 ms
3,164 KB
10_rand_10.in AC 11 ms
2,764 KB
20_max_01.in AC 34 ms
3,100 KB
20_max_02.in AC 39 ms
3,140 KB
20_max_03.in AC 41 ms
3,204 KB
20_max_04.in AC 44 ms
3,352 KB
20_max_05.in AC 47 ms
3,436 KB
30_grid_01.in AC 14 ms
2,928 KB
30_grid_02.in AC 10 ms
2,764 KB
30_grid_03.in AC 22 ms
3,168 KB
40_special_01.in AC 48 ms
3,404 KB
40_special_02.in AC 31 ms
3,240 KB
40_special_03.in AC 34 ms
3,240 KB
40_special_04.in AC 49 ms
3,536 KB
40_special_05.in AC 35 ms
3,204 KB
40_special_06.in AC 27 ms
2,872 KB
40_special_07.in AC 27 ms
3,036 KB
50_hand_01.in AC 3 ms
2,560 KB
50_hand_02.in AC 4 ms
2,560 KB
テストケース一括ダウンロード

ソースコード

diff #
#include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
bool dp[6][20001];
int p1[6][20001];
vector<int>v[20001];
int main(){
        int N,M;
        cin>>N>>M;
        REP(i,M){
          int a,b;
          cin>>a>>b;
          v[a].push_back(b);
          v[b].push_back(a);
        }
	REP(i,6){
	   REP(j,20001){
             dp[i][j]=false;
	   }
	}
        REP(i,6){
	  REP(j,20001){
             p1[i][j]=-1;
	   }
	}
        dp[0][1]=true;
        REP(i,5){
            REP(j,N+1){
               if(dp[i][j]){
                  REP(k,v[j].size()){
                      int x=v[j][k];
                      if(x!=1){
                         if(p1[i][j]!=x){
                            if(p1[i+1][x]!=-1){
                               p1[i+1][x]=-2;
                            }else{
                               p1[i+1][x]=j;
                            }
                            dp[i+1][x]=true;
                         }
                      }
                  }
               }
            }
        }
        int check=0;
        REP(i,N+1){
            if(i==1)continue;
            if(dp[4][i]==true){
               REP(j,v[i].size()){
                   if(v[i][j]==1)check++;
               }
            }
            if(check>=2)break;
        }
/*
        REP(i,6){
           REP(j,N+1){
           cout<<dp[i][j];
           }
           cout<<endl;
        }
*/
        if(check>=2){
           cout<<"YES"<<endl;
        }else{
           cout<<"NO"<<endl;
        }
	
	return(0);
}
0