Submission #130320

#TimeUsernameProblemLanguageResultExecution timeMemory
130320ShushSeats (IOI18_seats)C++17
11 / 100
4033 ms40824 KiB
#include <bits/stdc++.h>
#include "seats.h"
using namespace std;
typedef long long ll;

int h, w, mxr = 0, mnr = 1e9, mxc = 0, mnc = 1e9;
vector<int> r, c;

void rst(){
	mxr = 0, mnr = 1e9, mxc = 0, mnc = 1e9;
}

void swr(int a, int b){
	int x = r[a];
	r[a] = r[b];
	r[b] = x;
}

void swc(int a, int b){
	int x = c[a];
	c[a] = c[b];
	c[b] = x;
}

void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) {
	h = H; w = W;
	r = R; c = C;
	for(int i = 0; i < h*w; i++){
		c[i]++;
		r[i]++;
	}
}

int swap_seats(int a, int b) {
	ll res = 0;
	swr(a, b); swc(a, b); rst();
	for(int i = 0; i < h*w; i++){
		if(mxr < r[i]) mxr = r[i];
		if(mnr > r[i]) mnr = r[i];
		if(mxc < c[i]) mxc = c[i];
		if(mnc > c[i]) mnc = c[i];
		int hi = (mxr - mnr) + 1, wi = (mxc - mnc) + 1;
		if(hi < 1) hi = 1;
		if(wi < 1) wi = 1;
		if(hi*wi - 1 == i) res++;
	}
	return res;
}
#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...