이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int c=1000002;
int n, m, sor[c], oszlop[c], db, kiss[c], nagys[c], kiso[c], nagyo[c];
bool jo[c];
int swap_seats(int a, int b) {
swap(sor[a], sor[b]), swap(oszlop[a], oszlop[b]);
for (int i=a; i<b; i++) {
if (i==0) kiss[0]=sor[0], nagys[a]=sor[0], kiso[a]=oszlop[0], nagyo[a]=oszlop[0];
else kiss[i]=min(kiss[i-1], sor[i]), nagys[i]=max(nagys[i-1], sor[i]), kiso[i]=min(kiso[i-1], oszlop[i]), nagyo[i]=max(nagyo[i-1], oszlop[i]);
db-=jo[i];
if ((nagys[i]-kiss[i]+1)*(nagyo[i]-kiso[i]+1)==i+1) jo[i]=1, db++;
}
return db;
}
void give_initial_chart(int a, int b, vector<int> c, vector<int> d) {
n=a, m=b;
for (int i=0; i<n*m; i++) sor[i]=c[i], oszlop[i]=d[i];
int db=0, ks=n, ns=0, ko=m, no=0;
for (int i=0; i<n*m; i++) {
ks=min(ks, sor[i]), ko=min(ko, oszlop[i]);
ns=max(ns, sor[i]), no=max(no, oszlop[i]);
kiss[i]=ks, nagys[i]=ns, kiso[i]=ko, nagyo[i]=no;
if ((ns-ks+1)*(no-ko+1)==i+1) jo[i]=1, db++;
}
}
# | 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... |