Submission #1029786

#TimeUsernameProblemLanguageResultExecution timeMemory
1029786DorostWefSeats (IOI18_seats)C++17
11 / 100
4081 ms24136 KiB
#include "seats.h"
#pragma GCC optimize ("Ofast,unroll-loops")
#pragma GCC target ("avx2")
#include <bits/stdc++.h>
#define Min(a,b) ((a)<(b)?(a):(b))
#define Max(a,b) ((a)>(b)?(a):(b))

using namespace std;

std::vector<int> r, c;
int h, w;
const int N = 1000005;

void give_initial_chart(int H, int W, std::vector<int> R, std::vector<int> C) {
  r = R;
  c = C;
  h = H;
  w = W;
}

int swap_seats(int a, int b) {
	swap (r[a], r[b]);
	swap (c[a], c[b]);
	int mnx = N, mxx = -N;
	int mny = N, mxy = -N;
	int ans = 0;
	for (int i = 0; i < h * w - min(h, w); i++) {
		mnx = Min (mnx, r[i]);
		mny = Min (mny, c[i]);
		mxx = Max (mxx, r[i]);
		mxy = Max (mxy, c[i]);
		ans += ((mxx - mnx + 1) * (mxy - mny + 1) == (i + 1));
	}
	return ans + 1;
}
#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...