이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "robots.h"
typedef std::pair<int,int> pii;
int putaway(int A,int B,int T,int X[],int Y[],int W[],int S[]){
std::sort(X,&X[A]);
std::sort(Y,&Y[B]);
int pesos[T]={};
for(int i=0;i!=A;++i){
for(int j=0;j!=T;++j){
if(W[j]<X[i]){
pesos[j]++;
}
}
}
for(int i=0;i!=B;++i){
for(int j=0;j!=T;++j){
if(S[j]<Y[i]){
pesos[j]++;
}
}
}
for(auto&x:pesos)if(!x)return -1;
int count=0,retirou=0;
bool pegou[T]={};
for(;;){
++count;
for(int i=0;i!=A;++i){
int pos=-1,valor = 1e9;
for(int j=0;j!=T;++j){
if(pegou[j])continue;
if(W[j]<X[i]){
if(pesos[j]<valor){
valor=pesos[j];
pos=j;
}
}
}
if(pos!=-1){
pegou[pos]=true;
++retirou;
}
}
for(int i=0;i!=B;++i){
int pos=-1;
pii valor = {1e9,-1};
for(int j=0;j!=T;++j){
if(pegou[j])continue;
if(S[j]<Y[i]){
if(pii(pesos[j],1e9-S[j])<valor){
valor={pesos[j],1e9-S[j]};
pos=j;
}
}
}
if(pos!=-1){
pegou[pos]=true;
++retirou;
}
}
if(retirou==T){
break;
}
}
return count;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |