Submission #637101

#TimeUsernameProblemLanguageResultExecution timeMemory
637101Dec0DeddDEL13 (info1cup18_del13)C++14
6 / 100
16 ms6472 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5+10; int d[N], rm[N], par[N][4], n, q; bool dp[N][4], vis[N][4]; bool gen(int i, int l) { int x=d[i]-l; if (x < 0) return false; if (i == q) { if (l == 0) return true; return false; } if (vis[i][l]) return dp[i][l]; vis[i][l]=true; if (x%2 == 0) { if ((x == 0 || l > 0) && gen(i+1, 0)) par[i][l]=0, dp[i][l]=true; if (x >= 2 && gen(i+1, 2)) par[i][l]=2, dp[i][l]=true; } else { if (gen(i+1, 1)) par[i][l]=1, dp[i][l]=true; } return dp[i][l]; } void solve() { cin>>n>>q; if (q == 0) { cout<<0<<"\n"; return; } for (int i=0; i<=n; ++i) d[i]=rm[i]=0; for (int i=0; i<=n; ++i) { for (int j=0; j<5; ++j) dp[i][j]=vis[i][j]=false, par[i][j]=-1; } vector<int> v; v.push_back(0); for (int i=0; i<q; ++i) { int p; cin>>p; v.push_back(p); } q+=2, v.push_back(n+1); for (int i=1; i<q; ++i) d[i]=v[i]-v[i-1]-1; bool ok=gen(1, 0); if (!ok) { cout<<-1<<"\n"; } else { cout<<0<<"\n"; cout<<"\n"; } } int main() { int t; cin>>t; while (t--) solve(); }

Compilation message (stderr)

del13.cpp: In function 'void solve()':
del13.cpp:40:49: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
   40 |       for (int j=0; j<5; ++j) dp[i][j]=vis[i][j]=false, par[i][j]=-1;
      |                                        ~~~~~~~~~^~~~~~
del13.cpp:40:22: note: within this loop
   40 |       for (int j=0; j<5; ++j) dp[i][j]=vis[i][j]=false, par[i][j]=-1;
      |                     ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...