# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1059225 | vjudge1 | 로봇 (IOI13_robots) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "robots.h"
#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<pair<int,int>> Tw;
int a, t;
vector<int> x;
int binary(int l, int r){
int n;
while(l <= r){
n = (l+r)/2;
if(bcheck(n)){
r = n-1;
}else{
l = n+1;
}
}
return l;
}
bool bcheck(int n){
int pos=0,cnt=n,toys_cnt=0;
for(int i=0; i < t; i++){
if(Tw[i].first < x[pos]){
cnt--;
toys_cnt++;
}
if(cnt == 0){
cnt = n;
pos++;
}
if(pos == a)break;
}
return toys_cnt == t;
}
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
a = A; t = T;
for(int i=0; i < A; i++){
x.push_back(X[i]);
}
sort(x.rbegin(),x.rend());
for(int i=0; i < T; i++){
Tw.push_back({W[i],S[i]});
}
sort(Tw.rbegin(),Tw.rend());
int ans=binary(0,T);
if(ans > T)ans = -1;
return ans;
}