Submission #13154

#TimeUsernameProblemLanguageResultExecution timeMemory
13154paulsohnOrchard (NOI14_orchard)C++98
0 / 25
0 ms262144 KiB
#include<stdio.h> #define min(a,b) (a<b?a:b) int n, m, sum[1000100], dy[115000000]; inline int access(int i, int j){ return (m+1)*i+j;} inline int access(int i, int ii, int j){ return (m+1)*((n+1)*i+ii)+j; } int main(){ int i,ii,j,tmp,tot=0,wei=50000000; scanf("%d %d",&n,&m); for(i=1;i<=n;++i){ for(j=1;j<=m;++j){ scanf("%d",&tmp); if(tmp){ ++tot; sum[access(i,j)]=sum[access(i-1,j)]-1; } else sum[access(i,j)]=sum[access(i-1,j)]+1; } } for(i=0;i<n;++i){ for(ii=i+1;ii<=n;++ii){ for(j=1;j<=m;++j){ dy[access(i,ii,j)]=sum[access(ii,j)]-sum[access(i,j)]+min(dy[access(i,ii,j-1)],0); wei=min(wei,dy[access(i,ii,j)]); } } } printf("%d\n",tot+wei); 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...