This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "seats.h"
#include <bits/stdc++.h>
//#include "grader.cpp"
#define fr first
#define sc second
#define mk make_pair
#define pb push_back
#define all(s) s.begin(), s.end()
using namespace std;
const int N = 1e6 + 5;
int ans, mn_x[N], mx_x[N], mn_y[N], mx_y[N], fl[N];
vector <int> r, c;
void give_initial_chart(int n, int m, vector<int> R, vector<int> C) {
r = R;
c = C;
for (int i = 0; i < n * m; i++)
{
mn_x[i] = 1e9;
mn_y[i] = 1e9;
mx_x[i] = -1e9;
mx_y[i] = -1e9;
if (i == 0){
mn_x[i] = r[i], mx_x[i] = r[i];
mn_y[i] = c[i], mx_y[i] = c[i];
}
else{
mn_x[i] = min(mn_x[i - 1], r[i]), mx_x[i] = max(mx_x[i - 1], r[i]);
mn_y[i] = min(mn_y[i - 1], c[i]), mx_y[i] = max(mx_y[i - 1], c[i]);
}
if ( (mx_x[i] - mn_x[i] + 1) * 1ll * (mx_y[i] - mn_y[i] + 1) == i + 1 )
fl[i] = 1, ans++;
}
}
int swap_seats(int a, int b) {
swap(r[a], r[b]);
swap(c[a], c[b]);
for (int i = a; i <= b; i++)
{
if (i == 0){
mn_x[i] = r[i], mx_x[i] = r[i];
mn_y[i] = c[i], mx_y[i] = c[i];
}
else{
mn_x[i] = min(mn_x[i - 1], r[i]), mx_x[i] = max(mx_x[i - 1], r[i]);
mn_y[i] = min(mn_y[i - 1], c[i]), mx_y[i] = max(mx_y[i - 1], c[i]);
}
if ( (mx_x[i] - mn_x[i] + 1) * 1ll * (mx_y[i] - mn_y[i] + 1) == i + 1 ){
if (fl[i] == 0){
fl[i] = 1, ans++;
}
}
else{
if ( fl[i] == 1 ){
fl[i] = 0, ans--;
}
}
}
return 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... |