# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1243901 | Amaarsaa | Robots (IOI13_robots) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "robots.h"
using namespace std;
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
sort ( X, X + A);
sort ( Y, Y + B);`
vector < int > only_A, only_B, Both;
for (i = 0; i < T; i ++) {
if ( W[i] > X.back()) only_B.push_back(S[i]);
if ( S[i] > Y.back()) only_A.push_back(W[i]);
if ( W[i] > X.back() && S[i] > Y.back()) return -1;
if( W[i] <= X.back() && S[i] <= Y.back()) {
Both.push_back(i);
}
}
lo = 0;
hi = 1e9;
while ( lo < hi) {
mid = (lo + hi)/2;
r = 0;
for (i = 0; i < X.size(); i ++) {
cnt = mid;
while ( cnt -- && r < only_A.size()) {
if ( only_A[r] <= X[i]) r ++;
else break;
}
}
if ( r < only_A.size()){
lo = mid + 1;
continue;
}
r = 0;
for (i = 0; i < Y.size(); i ++) {
cnt = mid;
while ( cnt -- && r < only_B.size()) {
if ( only_B[r] <= Y[i]) r ++;
else break;
}
}
if ( r < only_B.size()){
lo = mid + 1;
continue;
}
}
return 42;
}