제출 #971201

#제출 시각아이디문제언어결과실행 시간메모리
971201AbitoBinaria (CCO23_day1problem1)C++17
0 / 25
3 ms4560 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<=min(2*k,n);i++){ p[i]=p[i-1]; int s=p[i]-p[i-k]; if (s==b[i-k+1]) continue; if (s==b[i-k+1]-1) {p[i]++;continue;} 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...