Submission #75823886


Source Code Expand

#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
#define rep(i, s, e) for (ll i = (s); i <= (e); i++)
#define all(v) v.begin(), v.end()
#define pb push_back
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using P = array<ll, 2>;
ll n, q, k, a, b, c, s, e, dt[2020];
vector<ll> sd;
vector<array<ll, 4>> qr;
ll f() {
	ll cm = 0, cs = 0, cw = 0, pt = 0;
	for (auto [i, a, b, c] : qr) {
		for (; pt < k && sd[pt] >= i; pt++)
			cw++;
		if (!cm && cw)
			cm++, cw--;
		if (!cm && cs)
			cm++, cs--;
		if (cm < a)
			cw -= a - cm, cm = a;
		if (cs < c)
			cw -= c - cs, cs = c;
		if (a + b + c > cw + cm + cs)
			return 0;
		if (cw < 0)
			return 0;
	}
	return 1;
}
int main() {
	cin.tie(0)->sync_with_stdio(0);
	cin >> n >> q;
	rep(i, 1, q) {
		cin >> k >> a;
		if (k < 2) {
			if (!dt[a])
				dt[a] = i;
		} else {
			cin >> b >> c;
			qr.push_back({i, a, b, c});
		}
	}
	rep(i, 1, n) {
		if (!dt[i])
			dt[i] = 1e9;
		sd.push_back(dt[i]);
	}
	sort(all(sd));
	reverse(all(sd));
	reverse(all(qr));
	k = n;
	if (!f()) {
		cout << -1;
		return 0;
	}
	for (s = 0, e = n; s < e;) {
		k = s + e >> 1;
		if (f())
			e = k;
		else
			s = k + 1;
	}
	cout << e;
	return 0;
}

Submission Info

Submission Time
Task H - CUBRID HA Load Balance
User iAi
Language C++23 (GCC 15.2.0)
Score 100
Code Size 1298 Byte
Status AC
Exec Time 2 ms
Memory 3708 KiB

Compile Error

./Main.cpp: In function 'int main()':
./Main.cpp:61:23: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   61 |                 k = s + e >> 1;
      |                     ~~^~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status AC
AC × 50
Set Name Test Cases
Sample
All 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
Case Name Status Exec Time Memory
01 AC 2 ms 3528 KiB
02 AC 1 ms 3528 KiB
03 AC 1 ms 3400 KiB
04 AC 1 ms 3456 KiB
05 AC 1 ms 3484 KiB
06 AC 1 ms 3448 KiB
07 AC 1 ms 3676 KiB
08 AC 1 ms 3400 KiB
09 AC 1 ms 3448 KiB
10 AC 1 ms 3568 KiB
11 AC 1 ms 3448 KiB
12 AC 1 ms 3580 KiB
13 AC 1 ms 3516 KiB
14 AC 1 ms 3384 KiB
15 AC 1 ms 3580 KiB
16 AC 1 ms 3676 KiB
17 AC 1 ms 3544 KiB
18 AC 1 ms 3576 KiB
19 AC 1 ms 3384 KiB
20 AC 1 ms 3528 KiB
21 AC 1 ms 3656 KiB
22 AC 1 ms 3672 KiB
23 AC 1 ms 3388 KiB
24 AC 1 ms 3484 KiB
25 AC 1 ms 3576 KiB
26 AC 1 ms 3444 KiB
27 AC 1 ms 3448 KiB
28 AC 1 ms 3652 KiB
29 AC 1 ms 3528 KiB
30 AC 1 ms 3592 KiB
31 AC 1 ms 3592 KiB
32 AC 1 ms 3528 KiB
33 AC 1 ms 3676 KiB
34 AC 1 ms 3656 KiB
35 AC 1 ms 3676 KiB
36 AC 1 ms 3652 KiB
37 AC 1 ms 3484 KiB
38 AC 1 ms 3592 KiB
39 AC 1 ms 3388 KiB
40 AC 1 ms 3696 KiB
41 AC 1 ms 3464 KiB
42 AC 1 ms 3708 KiB
43 AC 1 ms 3672 KiB
44 AC 1 ms 3592 KiB
45 AC 1 ms 3524 KiB
46 AC 1 ms 3516 KiB
47 AC 1 ms 3448 KiB
48 AC 1 ms 3676 KiB
49 AC 1 ms 3672 KiB
50 AC 1 ms 3640 KiB