Submission #1147378

#TimeUsernameProblemLanguageResultExecution timeMemory
1147378Kaztaev_Alisher자리 배치 (IOI18_seats)C++20
11 / 100
4094 ms59388 KiB
#include "seats.h"
#include <bits/stdc++.h>

#define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
#define all(a) a.begin() , a.end()
#define F first
#define S second

using namespace std;
using ll = long long;

const ll N = 1e6+5 , inf = 2e9 + 7;
const ll INF = 1e18 ,   mod = 1e9+7;


vector<int> a[N];
int n , m;
pair<int,int> pos[N];

void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) {
	for(int i = 0; i <= H+1; i++){
		a[i].resize(W+9);
	}
	n = H , m = W;
	for(int i = 0; i < n*m; i++){
		R[i]++;
		C[i]++;
		pos[i] = {R[i],C[i]};
	}
}

int swap_seats(int a, int b) {
	swap(pos[a],pos[b]);
	int ans = 0;
	int mnx = n , mny = m , mxx = 1 , mxy = 1; 
	for(int i = 0; i < n*m; i++){
		mnx = min(mnx , pos[i].F);
		mny = min(mny , pos[i].S);
		mxx = max(mxx , pos[i].F);
		mxy = max(mxy , pos[i].S);
		if(i+1 == (mxx-mnx+1) * (mxy-mny+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...