Submission #740432

#TimeUsernameProblemLanguageResultExecution timeMemory
740432Ahmed57Popeala (CEOI16_popeala)C++17
0 / 100
167 ms2348 KiB
#include <bits/stdc++.h> using namespace std; int tele[2000005]; int le[2000005]; bool vis[2000005]; int ans = 0;bool ss = 0; void dfs(int i){ ans++;vis[i] = 1; if(tele[i]==0){ss = 1;return ;} if(!vis[tele[i]])dfs(tele[i]); } int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); long long n,t,s;cin>>n>>t>>s; vector<string>r(n+1); long long 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]; long long 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); } long long dp[s+1][t+1]; dp[0][0] = 0; for(int i = 1;i<=t;i++)dp[0][i] = 1e18; for(int i = 1;i<=s;i++){ for(int j = 1;j<=t;j++){ dp[i][j] = 1e18; for(int k = 0;k<=n;k++){ long long val = 1e18; for(int l = (k==0?0:a[j][k-1]);l<a[j][k];l++){ val = min(val,dp[i-1][l]+(k*(p[j]-p[l]))); } dp[i][j] = min(dp[i][j],val); } } 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...