Submission #113898

#TimeUsernameProblemLanguageResultExecution timeMemory
113898antimirageSeats (IOI18_seats)C++14
0 / 100
3561 ms55576 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...