제출 #294923

#제출 시각아이디문제언어결과실행 시간메모리
294923mohammadSeats (IOI18_seats)C++14
5 / 100
4091 ms97304 KiB
#include "seats.h" #include<bits/stdc++.h> using namespace std; #define endl "\n" // #define int long long typedef long long ll ; const ll ooo = 1e14 ; const ll oo = 2e9 ; const double PI = acos(-1) ; const ll M = 1e9 + 7 ; const int N = 10000010 ; vector<vector<int>> g; vector<int> r , c; map<int, pair<int,int>> mp ; int n = 0 , m = 0 ; void give_initial_chart(int H, int W, vector<int> R, vector<int> C) { g = vector<vector<int>>(H , vector<int>(W , 0)); r = R; c = C; n = H; m = W; for(int i = 0 ; i < n*m ; ++i) g[R[i]][C[i]] = i , mp[i] = {R[i] , C[i]}; } int swap_seats(int a, int b) { swap(mp[a] , mp[b]); int mx = oo , my = oo , mxx = 0 , myy = 0 , ans = 0; for(int i = 0 ; i < m * n ; ++i){ mx = min(mx , mp[i].first); my = min(my , mp[i].second); mxx = max(mxx , mp[i].first); myy = max(myy , mp[i].second); // cout << mx << ' ' << my << ' ' << mxx << ' ' << myy << ' ' << (myy - my + 1) * (mxx - mx + 1) << endl; if((myy - my + 1) * (mxx - mx + 1) == i + 1){ 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...