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>
using namespace std;
vector<int> R,C;
vector<vector<int>> grid;
int H,W;
int solve_chart(int H, int W) {
int up = 0, down = H, left = W, right = 0;
int b = 0;
for (int k = 1; k <= H*W; k++) {
up = max(up,R[k-1]);
down = min(down,R[k-1]);
left = min(left,C[k-1]);
right = max(right,C[k-1]);
// cout << k << ": " << left << " " << right << " " << down << " " << up;
if ((right-left+1)*(up-down+1) == k) {
// cout << " yes";
// cout << k << "\n";
b++;
}
// cout << "\n";
}
return b;
}
void give_initial_chart(int tempH, int tempW, std::vector<int> tempR, std::vector<int> tempC) {
H = tempH; W = tempW; R = tempR; C = tempC;
grid.assign(H,vector<int>(W));
for (int i = 0; i < H*W; i++) grid[tempR[i]][tempC[i]] = i;
}
int swap_seats(int a, int b) {
swap(grid[R[a]][C[a]], grid[R[b]][C[b]]);
swap(R[a],R[b]);
swap(C[a],C[b]);
return solve_chart(H,W);
// return -1;
}
# | 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... |