Submission #648492

#TimeUsernameProblemLanguageResultExecution timeMemory
648492inksamuraiVođe (COCI17_vode)C++17
72 / 120
3101 ms524288 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0;i<n;i++) #define rng(i,c,n) for(int i=c;i<n;i++) #define per(i,n) for(int i=n-1;i>=0;i--) #define fi first #define se second #define pb push_back #define sz(a) (int)a.size() #define vec(...) vector<__VA_ARGS__> #define _3Rz7lEu ios::sync_with_stdio(0),cin.tie(0) typedef long long ll; using pii=pair<int,int>; using vi=vector<int>; void print(){cout<<'\n';} template<class h,class...t> void print(const h&v,const t&...u){cout<<v<<' ',print(u...);} // e signed main(){ _3Rz7lEu; int n,m,k; cin>>n>>m>>k; vi a(n); rep(i,n){ cin>>a[i]; } vec(vec(vi)) dp(n,vec(vi)(m+1,vi(2,-1))); auto dfs=[&](auto self,int i,int j,int t)->int{ if(dp[i][j][t]!=-1) return dp[i][j][t]; if(j==m-1) return dp[i][j][t]=0; int res=0; rng(ad,1,k+1){ int ni=(i+1)%n; int nj=j+ad; if(nj<m){ int val=self(self,ni,nj,a[ni]); if(val){ if(a[ni]==t){ res=1; } }else{ if(a[ni]!=t){ res=1; } } } } return dp[i][j][t]=res; }; rep(i,n){ int val=dfs(dfs,i,0,a[i]); // cout<<val<<" "; cout<<(val^a[i]^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...
#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...