Submission #536821

#TimeUsernameProblemLanguageResultExecution timeMemory
536821zaneyuPopeala (CEOI16_popeala)C++17
17 / 100
2069 ms1108 KiB
/*input 2 3 3 4 3 5 101 110 */ #include<bits/stdc++.h> using namespace std; #define REP(i,n) for(int i=0;i<n;i++) #define MNTO(x,y) x=min(x,y) #define REP1(i,n) for(int i=1;i<=n;i++) #define ll long long const int maxn=2e4+5; ll dp[maxn],ndp[maxn]; bool ok[maxn]; int arr[maxn]; string s[maxn]; int main(){ ios::sync_with_stdio(false),cin.tie(0); int n,m,S; cin>>n>>m>>S; REP1(i,m) cin>>arr[i]; REP(i,n) cin>>s[i],s[i]="0"+s[i]; REP1(i,m) ndp[i]=dp[i]=INT_MAX; REP1(asd,S){ REP1(i,m){ ndp[i]=INT_MAX; int cnt=n; int sum=0; REP(a,n) ok[a]=1; for(int j=i;j>=0;j--){ if(j!=i) MNTO(ndp[i],dp[j]+1LL*cnt*sum); sum+=arr[j]; cnt=0; REP(a,n){ if(s[a][j]=='0') ok[a]=0; if(ok[a]) ++cnt; } } } REP1(i,m) dp[i]=ndp[i]; dp[0]=INT_MAX; cout<<ndp[m]<<'\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...