Submission #770384

#TimeUsernameProblemLanguageResultExecution timeMemory
770384vjudge1Seats (IOI18_seats)C++17
0 / 100
189 ms71968 KiB
#include "seats.h" #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; int pans = 0; vector<int> x, y, A,B,C,D; void give_initial_chart(int H, int W, vector<int> R, vector<int> C) { A.resize(H*W+1); B.resize(H*W+1); C.resize(H*W+1); D.resize(H*W+1); A[0] = 2e9; C[0]=2e9; for(int i = 1; i <=H*W; i++) { A[i] = min(A[i-1],x[i]); B[i] = max(B[i-1],x[i]); C[i] = min(C[i-1],y[i]); D[i] = max(D[i-1],y[i]); if((B[i]-A[i])*(D[i]-C[i])==i) pans++; } x=R,y=C; } int swap_seats(int a, int b) { a++; int ans = pans; swap(x[a],x[b]); swap(y[a],y[b]); for(int i = a; i <= b; i++) { if((B[i]-A[i])*(D[i]-C[i])==i) ans--; A[i] = min(A[i-1],x[i]); B[i] = max(B[i-1],x[i]); C[i] = min(C[i-1],y[i]); D[i] = max(D[i-1],y[i]); if((B[i]-A[i])*(D[i]-C[i])==i) ans++; } return pans = 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...