Submission #1015366

#TimeUsernameProblemLanguageResultExecution timeMemory
1015366mindiyakSeats (IOI18_seats)C++14
11 / 100
4075 ms56436 KiB
#include "seats.h" #include <iostream> using namespace std; #pragma GCC optimize("O1,O2,O3,Ofast,unroll-loops") const int MX = 1e6+5; vector<pair<int,int>> pos(MX); int n = 0; vector<int> rmin(MX,0); vector<int> rmax(MX,0); vector<int> cmin(MX,0); vector<int> cmax(MX,0); void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) { n = H*W; for(int i=0;i<H*W;i++)pos[i] = {R[i],C[i]}; } int swap_seats(int a, int b) { swap(pos[a],pos[b]); rmin[0]=rmax[0]=pos[0].first; cmin[0]=cmax[0]=pos[0].second; for(int i=1;i<n;i++){ rmin[i] = min(rmin[i-1],pos[i].first); rmax[i] = max(rmax[i-1],pos[i].first); cmin[i] = min(cmin[i-1],pos[i].second); cmax[i] = max(cmax[i-1],pos[i].second); } // cout << endl; long long ans = 0; for(int i=0;i<n;i++){ int box_size = (rmax[i]-rmin[i]+1)*(cmax[i]-cmin[i]+1); // cout << "{" << rmin[i] << "," << rmax[i] << "} {" << cmin[i] << "," << cmax[i] << "} " << box_size << " " << i+1 << endl; if(i+1 == box_size){ ans++; } } // cout << " ans = " << ans << endl << endl; 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...