Submission #172316

# Submission time Handle Problem Language Result Execution time Memory
172316 2020-01-01T07:19:30 Z maruii Robots (IOI13_robots) C++14
100 / 100
1950 ms 12908 KB
#include "robots.h"
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
#define ff first
#define ss second

int A, B, T, *X, *Y, *W, *S;
pii P[1000005];

bool f(int m) {
	priority_queue<int> pq;
	int j = 0;
	for (int i = 0; i < A; ++i) {
		while (j < T && P[j].ff < X[i]) {
			pq.push(P[j].ss);
			j++;
		}
		for (int k = 0; pq.size() && k < m; ++k) pq.pop();
	}
	for (; j < T; ++j) pq.push(P[j].ss);
	for (int i = B - 1; i >= 0; --i) {
		for (int j = 0; pq.size() && j < m; ++j) {
			if (pq.top() >= Y[i]) return 0;
			pq.pop();
		}
	}
	return pq.size() == 0;
}

int putaway(int AA, int BB, int TT, int XX[], int YY[], int WW[], int SS[]) {
	A = AA, B = BB, T = TT, X = XX, Y = YY, W = WW, S = SS;
	sort(X, X + A);
	sort(Y, Y + B);
	for (int i = 0; i < T; ++i)
		if (W[i] >= X[A - 1] && S[i] >= Y[B - 1]) return -1;
	for (int i = 0; i < T; ++i) P[i] = {W[i], S[i]};
	sort(P, P + T);
	int l = 1, r = T;
	while (l < r) {
		int m = l + r >> 1;
		if (f(m)) r = m;
		else l = m + 1;
	}
	return l;
}

Compilation message

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:41:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int m = l + r >> 1;
           ~~^~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Correct 1457 ms 12108 KB Output is correct
5 Correct 188 ms 4524 KB Output is correct
6 Correct 39 ms 1272 KB Output is correct
7 Correct 418 ms 9120 KB Output is correct
8 Correct 953 ms 11548 KB Output is correct
9 Correct 1932 ms 12776 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 380 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 352 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 380 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 376 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 14 ms 632 KB Output is correct
17 Correct 18 ms 632 KB Output is correct
18 Correct 21 ms 632 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 1470 ms 12076 KB Output is correct
11 Correct 189 ms 4472 KB Output is correct
12 Correct 40 ms 1272 KB Output is correct
13 Correct 416 ms 9076 KB Output is correct
14 Correct 954 ms 11488 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 376 KB Output is correct
20 Correct 2 ms 376 KB Output is correct
21 Correct 14 ms 632 KB Output is correct
22 Correct 1922 ms 12712 KB Output is correct
23 Correct 1934 ms 12632 KB Output is correct
24 Correct 649 ms 12096 KB Output is correct
25 Correct 550 ms 9476 KB Output is correct
26 Correct 716 ms 12644 KB Output is correct
27 Correct 773 ms 10936 KB Output is correct
28 Correct 911 ms 10832 KB Output is correct
29 Correct 1950 ms 12908 KB Output is correct