Submission #652622

#TimeUsernameProblemLanguageResultExecution timeMemory
652622blueHamburg Steak (JOI20_hamburg)C++17
6 / 100
88 ms11204 KiB
#include <bits/stdc++.h>
using namespace std;

using vi = vector<int>;
using vvi = vector<vi>;
using pii = pair<int, int>;
using vpii = vector<pii>;
using vvpii = vector<vpii>;

const int mx = 200'000;
const int inf = 2'000'000'000;

int N, K;

vi X1, X2, Y1, Y2;

bool check(int x, int y, int r)
{
	return X1[r] <= x && x <= X2[r] && Y1[r] <= y && y <= Y2[r];
}

bool check(vi x, vi y)
{
	for(int i = 0; i < N; i++)
	{
		bool works = 0;
		for(int j = 0; j < K; j++)
		{
			if(check(x[j], y[j], i))
				works = 1;
		}
		if(!works)
			return 0;
	}
	return 1;
}

void answer(vi x, vi y)
{
	for(int k = 0; k < K; k++)
	{
		cout << x[k] << ' ' << y[k] << '\n';
	}
}

int max(vi& A)
{
	int res = -inf;
	for(int a : A)
		res = max(res, a);
	return res;
}

int min(vi& A)
{
	int res = inf;
	for(int a : A)
		res = min(res, a);
	return res;
}



int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	cin >> N >> K;
	X1 = X2 = Y1 = Y2 = vi(N);
	for(int i = 0; i < N; i++)
	{
		cin >> X1[i] >> Y1[i] >> X2[i] >> Y2[i];
	}

	if(check({max(X1), min(X2)}, {max(Y1), min(Y2)}))
	{
		// cerr << "hello\n";
		answer({max(X1), min(X2)}, {max(Y1), min(Y2)});
	}
	else
	{
		// cerr << "world\n";
		answer({max(X1), min(X2)}, {min(Y2), max(Y1)});
	}
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...