結果
問題 | No.2402 Dirty Stairs and Shoes |
ユーザー |
![]() |
提出日時 | 2023-08-05 16:41:47 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 49 ms / 2,000 ms |
コード長 | 724 bytes |
コンパイル時間 | 1,779 ms |
コンパイル使用メモリ | 198,444 KB |
最終ジャッジ日時 | 2025-02-15 23:37:30 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int n,k; cin>>n>>k; vector<int> state(n+1); vector<vector<int>> dp(n+1,vector<int>(2)); for (int i=1;i<=2;i++) { int m; cin>>m; for (int j=0;j<m;j++) { int a; cin>>a; state[a]=i; } } dp[0][0]=1; for (int i=0;i<n;i++) { if (state[i]==1) { dp[i+1][1]=1; if (i+k<=n) { dp[i+k][1]=1; } } else if (state[i]==2) { dp[i+1][0]=1; if (i+k<=n) { dp[i+k][0]=1; } } else { for (int j=0;j<2;j++) { dp[i+1][j]|=dp[i][j]; if (i+k<=n) { dp[i+k][j]|=dp[i][j]; } } } } cout<<(dp[n][0]?"Yes":"No")<<endl; }