結果
問題 | No.2402 Dirty Stairs and Shoes |
ユーザー | ripity |
提出日時 | 2023-08-04 21:42:31 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 56 ms / 2,000 ms |
コード長 | 663 bytes |
コンパイル時間 | 5,310 ms |
コンパイル使用メモリ | 263,220 KB |
実行使用メモリ | 14,892 KB |
最終ジャッジ日時 | 2024-12-20 02:34:26 |
合計ジャッジ時間 | 5,972 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; int main() { int N, K; cin >> N >> K; vector<int> mat(N+1), dirty(N+1); vector<vector<int>> dp(N+1, vector<int>(2)); int M; cin >> M; while(M--) { int A; cin >> A; dirty[A] = true; } cin >> M; while(M--) { int B; cin >> B; mat[B] = true; } dp[0][0] = true; for( int i = 0; i < N; i++ ) { for( int k : {1, K} ) { if( i+k <= N ) { dp[i+k][0] |= dp[i][0]&(!dirty[i+k]); dp[i+k][0] |= mat[i+k]; dp[i+k][1] |= dp[i][0]&dirty[i+k]; dp[i+k][1] |= dp[i][1]&(!mat[i+k]); } } } cout << ( dp[N][0] ? "Yes" : "No" ) << endl; }