Submission #413667

#TimeUsernameProblemLanguageResultExecution timeMemory
413667LastRoninSeats (IOI18_seats)C++14
17 / 100
4041 ms56388 KiB
#include <bits/stdc++.h> #include "seats.h" #define ll long long #define pb push_back using namespace std; const ll N = 1e6 + 1; int h, w; int mnX[N], mxX[N]; int mnY[N], mxY[N]; int ans = 0; vector<int> R, C; void give_initial_chart(int H, int W, vector<int> r, vector<int> c) { R = r, C = c; mnX[0] = mxX[0] = R[0], mnY[0] = mxY[0] = C[0]; for(int i = 1; i < R.size(); i++) { mnX[i] = min(mnX[i - 1], R[i]); mnY[i] = min(mnY[i - 1], C[i]); mxX[i] = max(mxX[i - 1], R[i]); mxY[i] = max(mxY[i - 1], C[i]); } for(int i = 0; i < H * W; i++) { ll a = (mxX[i] - mnX[i] + 1ll) * (mxY[i] - mnY[i] + 1); if(a == i + 1) ans++; } } int swap_seats(int a, int b) { if(a>b)swap(a,b); swap(R[a], R[b]), swap(C[a], C[b]); for(int i = a; i <= b; i++) { ll a = (mxX[i] - mnX[i] + 1ll) * (mxY[i] - mnY[i] + 1); if(a == i + 1) ans--; if(i > 0) { mnX[i] = min(mnX[i - 1], R[i]); mnY[i] = min(mnY[i - 1], C[i]); mxX[i] = max(mxX[i - 1], R[i]); mxY[i] = max(mxY[i - 1], C[i]); } else { mnX[0] = mxX[0] = R[0], mnY[0] = mxY[0] = C[0]; } a = (mxX[i] - mnX[i] + 1ll) * (mxY[i] - mnY[i] + 1); if(a == i + 1) ans++; } return ans; } /* int main() { int n, m, q; cin >> n >> m >> q; vector<int> rr, cc; for(int i = 1, a, b; i <= n*m; i++) cin >> a >> b, rr.pb(a), cc.pb(b); give_initial_chart(n, m, rr, cc); while(q--) { ll a, b; cin >> a >> b; cout << swap_seats(a, b) << "\n"; } } */

Compilation message (stderr)

seats.cpp: In function 'void give_initial_chart(int, int, std::vector<int>, std::vector<int>)':
seats.cpp:17:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for(int i = 1; i < R.size(); i++) {
      |                 ~~^~~~~~~~~~
#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...