Submission #740451

#TimeUsernameProblemLanguageResultExecution timeMemory
740451Ahmed57Popeala (CEOI16_popeala)C++17
100 / 100
259 ms10704 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,t,s;cin>>n>>t>>s; vector<string>r(n+1); int p[t+1] = {0}; for(int i = 1;i<=t;i++){cin>>p[i];p[i]+=p[i-1];} for(int i = 1;i<=n;i++)cin>>r[i]; int a[t+1][n+1]; memset(a,0,sizeof a); for(int i = 1;i<=t;i++){ for(int j = 1;j<=n;j++){ a[i][j] = (r[j][i-1]=='0'?i:a[i-1][j]); } } for(int i = 1;i<=t;i++){ a[i][0] = i; sort(a[i],a[i]+n+1); } int dp[s+1][t+1]; for(int i = 0;i<=s;i++)for(int j = 0;j<=t;j++)dp[i][j] = 1e9; dp[0][0] = 0; for(int i = 1;i<=s;i++){ int b[n+1]; for(int j = 0;j<=n;j++)b[j]=1e9; for(int j = 1;j<=t;j++){ for(int k = 0;k<=n;k++){ for(int l=a[j-1][k]; l<a[j][k]; ++l) b[k]=min(dp[i-1][l]-p[l]*k,b[k]); dp[i][j]=min(b[k]+p[j]*k,dp[i][j]); } } cout<<dp[i][t]<<"\n"; } } //
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...