結果
問題 | No.2402 Dirty Stairs and Shoes |
ユーザー | GoldIngot |
提出日時 | 2023-08-04 21:37:06 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 1,760 bytes |
コンパイル時間 | 4,271 ms |
コンパイル使用メモリ | 264,428 KB |
実行使用メモリ | 16,228 KB |
最終ジャッジ日時 | 2024-12-20 02:30:15 |
合計ジャッジ時間 | 5,624 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; using ll = long long; using P = pair<ll,ll>; #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define rep2(i,m,n) for(int (i)=(m);(i)<(n);(i)++) #define rep2ll(i,m,n) for(ll (i)=(m);(i)<(n);(i)++) #define ALL(obj) (obj).begin(), (obj).end() #define rALL(obj) (obj).rbegin(), (obj).rend() const ll INF60 = 1LL<<60;//1152921504606846976 const int INF30 = 1<<30; using mint = modint998244353; using VL = vector<ll>; using VVL = vector<VL>; using VVVL = vector<VVL>; using VM = vector<mint>; using VVM = vector<VM>; using VVVM = vector<VVM>; using VD = vector<double>; using VVD = vector<VD>; using VVVD = vector<VVD>; template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; } template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; } int main(){ ios::sync_with_stdio(false); cin.tie(0); ll n, k; cin>>n>>k; ll m1; cin>>m1; VL a(n+1, 0); rep(i,m1){ ll A; cin>>A; a[A]=1; } ll m2; cin>>m2; VL b(n+1, 0); rep(i,m2){ ll B; cin>>B; b[B]=1; } vector<vector<int>> dp(n+1, vector<int>(2, 0)); dp[0][0] = 1; rep(i,n){ if(a[i]){ dp[i+1][1] |= dp[i][0] | dp[i][1]; if(i+k<=n) dp[i+k][1] |= dp[i][0] | dp[i][1]; }else if(b[i]){ dp[i+1][0] |= dp[i][0] | dp[i][1]; if(i+k<=n) dp[i+k][0] |= dp[i][0] | dp[i][1]; }else{ dp[i+1][0] |= dp[i][0]; dp[i+1][1] |= dp[i][1]; if(i+k<=n){ dp[i+k][0] |= dp[i][0]; dp[i+k][1] |= dp[i][1]; } } } cout<<(dp[n][0]?"Yes":"No"); return 0; }