Submission #227372

#TimeUsernameProblemLanguageResultExecution timeMemory
227372cgiosy조개 줍기 (KOI17_shell)C++17
46 / 100
2008 ms17948 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #pragma GCC target("arch=haswell") 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; int r=l+1; if(t=='U') 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 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++; } cout<<s<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...