Submission #227359

#TimeUsernameProblemLanguageResultExecution timeMemory
227359cgiosy조개 줍기 (KOI17_shell)C++17
0 / 100
129 ms9340 KiB
#include <bits/stdc++.h> using namespace std; alignas(64) int A[1520][1520]{}; int main() { ios::sync_with_stdio(0);cin.tie(0); int N; long long s=0; cin>>N; for(int i=1; i<=N; i++) for(int j=1; j<=N; j++) { cin>>A[i][j]; s+=A[i][j]+=max(A[i-1][j], A[i][j-1]); } cout<<s<<'\n'; for(int q=0; q<N; q++) { char t; int i, l; cin>>t>>i>>l; if(t=='U') { int r=l+1; while(l<r) { while(r<=N && A[i-1][r]<A[i][r-1]+1) r++; for(int j=l; j<r; j++) A[i][j]++; s+=r-l; if(++i>N) break; while(l<r && A[i-1][l]<=A[i][l-1]) l++; } } else { int r=l+1; while(true) { while(r<=N && A[i-1][r]<A[i][r-1]-1) r++; for(int j=l; j<r; j++) A[i][j]--; s-=r-l; if(++i>N) break; while(l<r && A[i-1][l]<=A[i][l-1]) l++; if(l==r) break; r=l+1; } } cout<<s<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...