Submission #918788

#TimeUsernameProblemLanguageResultExecution timeMemory
918788AbitoBinaria (CCO23_day1problem1)C++17
10 / 25
1041 ms16980 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #define F first #define S second #define pb push_back #define ppb pop_back #define ep insert #define endl '\n' #define elif else if #define pow pwr #define sqrt sqrtt #define int long long #define ll long long #define y1 YONE #define free freeee #define lcm llcm typedef unsigned long long ull; using namespace std; const int N=1e6+5,M=1e6+3; int a[N],n,k,b[N],p[N],ans; int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>k; for (int i=1;i<=n-k+1;i++) cin>>b[i]; for (int mask=0;mask<(1<<k);mask++){ if (__builtin_popcount(mask)!=b[1]) continue; bool ok=true; for (int j=1;j<=k;j++) p[j]=p[j-1]+bool(mask&(1<<(j-1))); for (int i=k+1;i<=n;i++){ p[i]=p[i-1]; int s=p[i]-p[i-k]; if (s>b[i-k+1]){ ok=false; break; } if (s<b[i-k+1]) p[i]++,s++; if (s!=b[i-k+1]) {ok=false;break;} } ans+=ok; }cout<<ans%M<<endl; return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...