結果
| 問題 | 
                            No.1242 高橋君とすごろく
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2020-10-03 15:50:19 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                TLE
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 884 bytes | 
| コンパイル時間 | 711 ms | 
| コンパイル使用メモリ | 72,248 KB | 
| 実行使用メモリ | 17,088 KB | 
| 最終ジャッジ日時 | 2024-07-18 04:30:36 | 
| 合計ジャッジ時間 | 7,138 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | TLE * 1 -- * 3 | 
| other | -- * 24 | 
ソースコード
#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
using ll = long long;
using ull = unsigned long long;
int main(){
 ull n;
 int k;
 cin >> n >> k;
 vector<ull> a(k + 1 , 0);
 for(int i = 1; i <= k; i++){
  cin >> a[i];
  a[i] += 10;
 }
 ull mx =*max_element(a.begin() , a.end());
 vector<int> check(mx + 20 , 0);
 for(int i = 1; i <= k; i++){
  check[a[i]] = 1;
 }
 
 for(ull i = mx; i >= 0; i--){
  if(check[a[i]] == 1){
   if(check[a[i] + 5] == 1)check[a[i] - 1] = 1;
   if(check[a[i] - 5] == 1)check[a[i] - 6] = 1;
   if(check[a[i] + 3] == 1)check[a[i] + 4] = 1;
   if(check[a[i] - 3] == 1)check[a[i] - 4] = 1;
   if(check[a[i] - 3] == 1)check[a[i] - 4] = 1;
   if(check[a[i] + 1] == 1)check[a[i] - 3] = 1;
   if(check[a[i] - 1] == 1)check[a[i] - 4] = 1;
  }
 }
 if(check[11] == 1)cout << "No" << endl;
 else cout << "Yes" << endl;
return 0;
}