이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "seats.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> r, c, rmi, rma, cmi, cma, v;
int s=0, n;
void give_initial_chart(int H, int W, vector<int> R, vector<int> C) {
r=R;
rmi=R;
rma=R;
c=C;
cmi=C;
cma=C;
n=H*W;
s=1;
v.push_back(1);
for(int i=1; i<n; i++){
rmi[i]=min(r[i], rmi[i-1]);
rma[i]=max(r[i], rma[i-1]);
cmi[i]=min(c[i], cmi[i-1]);
cma[i]=max(c[i], cma[i-1]);
if((rma[i]-rmi[i]+1)*(cma[i]-cmi[i]+1)==i+1){
s++;
v.push_back(1);
}
else v.push_back(0);
}
return;
}
int swap_seats(int a, int b) {
if(a>b)swap(a, b);
swap(r[a], r[b]);
swap(c[b], c[a]);
a+=(a==0);
rmi[0]=r[0];
rma[0]=r[0];
cmi[0]=c[0];
cma[0]=c[0];
for(int i=a; i<b; i++){
s-=v[i];
rmi[i]=min(r[i], rmi[i-1]);
rma[i]=max(r[i], rma[i-1]);
cmi[i]=min(c[i], cmi[i-1]);
cma[i]=max(c[i], cma[i-1]);
if((rma[i]-rmi[i]+1)*(cma[i]-cmi[i]+1)==i+1){
s++;
v[i]=1;
}
else v[i]=0;
}
return s;
}
# | 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... |