이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "seats.h"
#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int pans = 0;
vector<int> x, y, A,B,C,D;
void give_initial_chart(int H, int W, vector<int> R, vector<int> C) {
A.resize(H*W+1);
B.resize(H*W+1);
C.resize(H*W+1);
D.resize(H*W+1);
A[0] = 2e9;
C[0]=2e9;
for(int i = 1; i <=H*W; i++) {
A[i] = min(A[i-1],x[i]);
B[i] = max(B[i-1],x[i]);
C[i] = min(C[i-1],y[i]);
D[i] = max(D[i-1],y[i]);
if((B[i]-A[i])*(D[i]-C[i])==i)
pans++;
}
x=R,y=C;
}
int swap_seats(int a, int b) {
a++;
int ans = pans;
swap(x[a],x[b]);
swap(y[a],y[b]);
for(int i = a; i <= b; i++) {
if((B[i]-A[i])*(D[i]-C[i])==i)
ans--;
A[i] = min(A[i-1],x[i]);
B[i] = max(B[i-1],x[i]);
C[i] = min(C[i-1],y[i]);
D[i] = max(D[i-1],y[i]);
if((B[i]-A[i])*(D[i]-C[i])==i)
ans++;
}
return pans = ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |