結果
問題 |
No.2402 Dirty Stairs and Shoes
|
ユーザー |
|
提出日時 | 2023-09-07 22:10:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 42 ms / 2,000 ms |
コード長 | 966 bytes |
コンパイル時間 | 1,013 ms |
コンパイル使用メモリ | 74,704 KB |
最終ジャッジ日時 | 2025-02-16 19:14:47 |
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <iostream> #include <vector> using namespace std; bool check(vector<bool> vec, int sub){ return sub >= 0 && vec[sub]; } int main(void){ int n, k, m1, m2; cin >> n >> k; vector<bool> ds(n+1); cin >> m1; int a; for (int i = 0; i < m1; i++) { cin >> a; ds[a] = true; } vector<bool> scs(n+1); cin >> m2; int b; for (int i = 0; i < m2; i++) { cin >> b; scs[b] = true; } int dwsn = n; while (dwsn >= 0) { if (check(scs, dwsn-1) || check(scs, dwsn-k)) { cout << "Yes" << endl; return 0; } else if (check(ds, dwsn-1) && check(ds, dwsn-k)) { cout << "No" << endl; return 0; } else if (check(ds, dwsn-1)) { dwsn -= k; } else if (check(ds, dwsn-k)) { dwsn--; } else dwsn -= k; } cout << "Yes" << endl; return 0; }