제출 #1263714

#제출 시각아이디문제언어결과실행 시간메모리
1263714aren_dance로봇 (IOI13_robots)C++20
100 / 100
1892 ms13240 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include "robots.h"
using namespace std;
int putaway(int a, int b, int t,
	int x[], int y[], int w[], int s[]) {
	int answ = -1;
	int l = 1;
	int r = t;
	vector<pair<int, int>> g;
	for (int i = 0;i < t;++i) {
		g.push_back({ s[i],w[i] });
	}
	sort(g.rbegin(), g.rend());
	while (l <= r) {
		int m = (l + r) / 2;
		map<int, int> p1;
		map<int, int> p2;
		for (int i = 0;i < a;++i) {
			p1[x[i]]+=m;
		}
		for (int i = 0;i < b;++i) {
			p2[y[i]]+=m;
		}
		bool fl = 1;
		for (auto i : g) {
			int x1 = i.second;
			int y1 = i.first;
			auto u = p1.lower_bound(x1+1);
			if (u != p1.end()) {
				u->second--;
				if (u->second == 0) {
					p1.erase(u->first);
				}
				continue;
			}
			auto v = p2.lower_bound(y1+1);
			if (v != p2.end()) {
				v->second--;
				if (v->second == 0) {
					p2.erase(v->first);
				}
				continue;
			}
			else {
				fl = 0;
				break;
			}
		}
		if (fl) {
			r = m - 1;
			answ = m;
		}
		else {
			l = m + 1;
		}
	}
	return answ;
}
#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...