Submission #13156

#TimeUsernameProblemLanguageResultExecution timeMemory
13156paulsohnOrchard (NOI14_orchard)C++98
25 / 25
322 ms12804 KiB
#include<stdio.h> #define min(a,b) (a<b?a:b) int n, m, sum[2000200], dy[1000100]; inline int access(int i, int j){ return (m+1)*i+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[j]=sum[access(ii,j)]-sum[access(i,j)]+min(dy[j-1],0); wei=min(wei,dy[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...