Submission #156981

#TimeUsernameProblemLanguageResultExecution timeMemory
156981brcode과수원 (NOI14_orchard)C++14
25 / 25
359 ms25820 KiB
#include <iostream> using namespace std; int ans,cnt; int main(){ int n,m; cin>>n>>m; int dp[n+5][m+5]; int arr[n+5][m+5]; for(int i=0;i<=n+1;i++){ for(int j=0;j<=m+1;j++){ dp[i][j] = 0; arr[i][j] = 0; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ char x; cin>>x; if(x=='0'){ arr[i][j] = -1; }else{ arr[i][j] = 1; cnt++; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+arr[i][j]; } } for(int i=1;i<=n;i++){ for(int j=i;j<=n;j++){ int pos = m; for(int k=m;k>=1;k--){ if(dp[j][k]-dp[i-1][k]>dp[j][pos]-dp[i-1][pos]){ pos = k; } ans = max(ans, dp[j][pos]-dp[j][k-1]-dp[i-1][pos]+dp[i-1][k-1]); } } } cout<<cnt-ans<<endl; }
#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...