QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#563995 | #1156. Robots | makrav# | 14 | 180ms | 17020kb | C++20 | 2.4kb | 2024-09-14 18:29:47 | 2024-09-14 18:35:34 |
Judging History
answer
#include "robots.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
vector<int> ord_weak(A), ord_small(B);
iota(all(ord_weak), 0); iota(all(ord_small), 0);
sort(all(ord_weak), [&](int p1, int p2) {
return X[p1] < X[p2];
});
sort(all(ord_small), [&](int p1, int p2) {
return Y[p1] < Y[p2];
});
vector<int> toys_order(T), tow(T);
iota(all(toys_order), 0); iota(all(tow), 0);
sort(all(tow), [&](int p1, int p2) {return W[p1] < W[p2];});
sort(all(toys_order), [&](int p1, int p2) {
return S[p1] < S[p2];
});
int L = 0, R = T + 1;
while (R - L > 1) {
int M = (L + R) / 2;
//cout << M << '\n';
int ci = 0;
vector<int> used(T, 0);
set<pair<int, int>> st;
for (int i = 0; i < sz(ord_small); i++) {
while (ci < T && S[toys_order[ci]] < Y[ord_small[i]]) {
st.insert({-W[toys_order[ci]], toys_order[ci]});
//cout << "add " << toys_order[ci] << '\n';
ci++;
}
int cur = M;
while (cur && !st.empty()) {
auto it = st.begin();
used[(*it).second] = 1;
//cout << "delete " << (*it).second << '\n';
st.erase(it); cur--;
}
}
int cb = 0;
int siiu = 0;
for (int i = 0; i < sz(ord_weak); i++) {
while (siiu < T && W[tow[siiu]] < X[ord_weak[i]]) {
siiu++;
cb += !used[siiu - 1];
}
cb = max(0, cb - M);
}
while (siiu < T) {
cb += !used[siiu];
siiu++;
}
if (cb) L = M;
else R = M;
}
return (R == T + 1 ? -1 : R);
}
#ifdef LOCAL
signed main() {
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
int a, b, t; cin >> a >> b >> t;
int x[a], y[b], s[t], w[t];
for (int i = 0; i < a; i++) cin >> x[i];
for (int i = 0; i < b; i++) cin >> y[i];
for (int i = 0; i < t; i++) cin >> w[i] >> s[i];
cout << putaway(a, b, t, x, y, w, s) << '\n';
}
#endif
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 14
Accepted
time: 0ms
memory: 5880kb
input:
1 1 2 13 13 5 6 13 13
output:
-1
result:
ok single line: '-1'
Test #2:
score: 14
Accepted
time: 1ms
memory: 5776kb
input:
0 2 2 20 10 7 10 13 10
output:
2
result:
ok single line: '2'
Test #3:
score: 14
Accepted
time: 1ms
memory: 5884kb
input:
2 0 2 10 20 10 7 10 13
output:
2
result:
ok single line: '2'
Test #4:
score: 0
Wrong Answer
time: 1ms
memory: 6104kb
input:
1 1 2 13 13 15 6 5 16
output:
-1
result:
wrong answer 1st lines differ - expected: '1', found: '-1'
Subtask #2:
score: 14
Accepted
Test #8:
score: 14
Accepted
time: 180ms
memory: 17020kb
input:
50000 0 500000 1957680000 64280000 235160000 1384760000 1279320000 1005400000 1481760000 1129920000 1774640000 494160000 763120000 419640000 1742880000 1083000000 278360000 64040000 576880000 1479760000 1872320000 158480000 1183880000 81320000 249920000 30920000 1909240000 870920000 842280000 445640...
output:
17
result:
ok single line: '17'
Test #9:
score: 14
Accepted
time: 164ms
memory: 15944kb
input:
50000 0 500000 1259308694 1722606921 1479714896 1475931297 1942320254 1106961993 1138541861 1203363162 1463675587 1275336085 1847766630 1321488338 1222281203 1591977596 1409525422 1599394067 1145145532 1323526439 1598712171 1714056360 1476058962 1328447976 1935622082 1438076232 1341274687 1862703150...
output:
-1
result:
ok single line: '-1'
Test #10:
score: 14
Accepted
time: 19ms
memory: 8380kb
input:
50000 0 50000 113928 75954 27813 115923 126882 62226 23610 50853 75387 41997 41316 45291 109398 32691 53328 120774 113403 75204 143499 136305 2766 4464 134799 7683 14460 87384 12351 103104 59130 17037 129444 97344 145227 146124 27390 123153 66891 70968 61710 51729 103593 9702 107829 22188 118152 962...
output:
2
result:
ok single line: '2'
Test #11:
score: 14
Accepted
time: 158ms
memory: 15884kb
input:
50000 0 500000 138858 89022 139041 109101 28452 78147 110283 112965 95913 2007 37164 6264 147498 143694 12576 3606 104232 96870 67764 62778 121602 58416 119397 35865 71124 79884 62370 93516 133611 115716 55941 146244 100728 52704 55095 15102 135777 59718 7869 131775 33159 122232 22851 121371 59238 8...
output:
11
result:
ok single line: '11'
Test #12:
score: 14
Accepted
time: 179ms
memory: 16084kb
input:
50000 0 500000 776960000 773040000 1171760000 1106920000 1732640000 446960000 890920000 1737520000 183680000 728320000 1966120000 942880000 1218000000 694600000 1128640000 1696200000 1193000000 1572880000 532400000 1039840000 1833680000 1441840000 1447480000 553240000 366480000 515920000 1723560000 ...
output:
15
result:
ok single line: '15'
Test #13:
score: 14
Accepted
time: 170ms
memory: 15688kb
input:
50000 0 500000 1387853151 1101982239 1390128723 1447889751 1825875294 1064550393 1343204970 1060204064 1069119716 1342433657 1845505214 1670914465 1462776488 1460089570 1107081731 1950533753 1254549911 1866646965 1625749264 1138872479 1104010740 1231654841 1769368758 1137413788 1611385869 1233773347...
output:
10
result:
ok single line: '10'
Subtask #3:
score: 0
Skipped
Dependency #1:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
0%