QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#563994 | #1156. Robots | makrav# | 0 | 179ms | 17168kb | C++20 | 2.3kb | 2024-09-14 18:28:57 | 2024-09-14 18:28:58 |
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;
}
#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: 0
Wrong Answer
time: 1ms
memory: 5888kb
input:
1 1 2 13 13 5 6 13 13
output:
3
result:
wrong answer 1st lines differ - expected: '-1', found: '3'
Subtask #2:
score: 0
Wrong Answer
Test #8:
score: 14
Accepted
time: 179ms
memory: 17168kb
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: 0
Wrong Answer
time: 169ms
memory: 16148kb
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:
500001
result:
wrong answer 1st lines differ - expected: '-1', found: '500001'
Subtask #3:
score: 0
Skipped
Dependency #1:
0%
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
0%