結果
問題 | No.1242 高橋君とすごろく |
ユーザー |
|
提出日時 | 2020-10-02 23:15:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,031 bytes |
コンパイル時間 | 428 ms |
コンパイル使用メモリ | 45,768 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-20 02:50:52 |
合計ジャッジ時間 | 1,293 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 24 |
ソースコード
#include<cstdio> #include<algorithm> int f[1005]; long long a[105]; int main(){ long long upper = 100; int n,k; scanf("%d%d",&n,&k); for(int i = 1; i <= k; i++) scanf("%lld",&a[i]); std::sort(a+1,a+1+k); int find = 0; for(int i = 1; i <= k; i++){ if(a[i]<=upper) f[a[i]] = 1; for(int j = i+1; j <= k; j++){ long long u = a[i], v = a[j]; long long diff = v-u; if(diff==1 || diff==3 || diff==5){ if(u>=upper) find = 1; } } } if(find) printf("No\n"); else{ for(int i = upper; i >= 1; i--){ if(f[i]) continue; for(int x = 1; x <= 3; x++){ int y = 7-x; if(i+x<=upper && i+y<=upper && f[i+x] && f[i+y]) f[i] = 1; } //printf("f[%d] = %d\n",i,f[i]); } if(f[1]) printf("No\n"); else printf("Yes\n"); } return 0; } /* 1 11111111111011010011 3 11111111111101101001 5 11111101101001100001 */