Submission #599902

#TimeUsernameProblemLanguageResultExecution timeMemory
599902Hanksburger자리 배치 (IOI18_seats)C++17
17 / 100
4101 ms40472 KiB
#include "seats.h" #include <bits/stdc++.h> using namespace std; vector<int> x, y, xmn, ymn, xmx, ymx; int n, m, sum; void give_initial_chart(int N, int M, vector<int> X, vector<int> Y) { n=N; m=M; x=X; y=Y; for (int i=0; i<n*m; i++) { if (!i) { xmn.push_back(x[i]); ymn.push_back(y[i]); xmx.push_back(x[i]); ymx.push_back(y[i]); } else { xmn.push_back(min(xmn[i-1], x[i])); ymn.push_back(min(ymn[i-1], y[i])); xmx.push_back(max(xmx[i-1], x[i])); ymx.push_back(max(ymx[i-1], y[i])); } sum+=((xmx[i]-xmn[i]+1)*(ymx[i]-ymn[i]+1)==i+1); } } int swap_seats(int a, int b) { if (a>b) swap(a, b); for (int i=a; i<b; i++) sum-=((xmx[i]-xmn[i]+1)*(ymx[i]-ymn[i]+1)==i+1); swap(x[a], x[b]); swap(y[a], y[b]); for (int i=a; i<b; i++) { if (!i) { xmn[i]=x[i]; ymn[i]=y[i]; xmx[i]=x[i]; ymx[i]=y[i]; } else { xmn[i]=min(xmn[i-1], x[i]); ymn[i]=min(ymn[i-1], y[i]); xmx[i]=max(xmx[i-1], x[i]); ymx[i]=max(ymx[i-1], y[i]); } sum+=((xmx[i]-xmn[i]+1)*(ymx[i]-ymn[i]+1)==i+1); } return sum; }
#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...