이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<iostream>
#include<algorithm>
#include<queue>
#include"robots.h"
using namespace std;
int putaway(int A,int B,int T,int x[],int y[],int W[],int S[])
{
vector<pair<int,int> > zabawki;
for(int i=0;i<T;i++)
zabawki.push_back({W[i],S[i]});
sort(zabawki.begin(),zabawki.end());
vector<int> X,Y;
for(int i=0;i<A;i++)
X.push_back(x[i]);
for(int i=0;i<B;i++)
Y.push_back(y[i]);
sort(X.begin(),X.end());
sort(Y.begin(),Y.end());
int pocz=0,kon=T,sre,ostd=-1;
while(pocz<kon)
{
sre=(pocz+kon)/2;
int gdzie=0;
priority_queue<int> kolejka;
for(int i=0;i<A;i++)
{
while(gdzie<T && zabawki[gdzie].first<X[i])
kolejka.push(zabawki[gdzie].second),gdzie++;
for(int j=0;j<sre;j++)
if(!kolejka.empty())
kolejka.pop();
else break;
}
while(gdzie<T)
kolejka.push(zabawki[gdzie].second),gdzie++;
for(int i=B-1;i>=0;i--)
{
if(kolejka.empty())
break;
if(Y[i]<=kolejka.top())
break;
for(int j=0;j<sre;j++)
if(!kolejka.empty())
kolejka.pop();
else break;
}
if(kolejka.empty())
{
ostd=sre;
kon=sre;
}
else pocz=sre+1;
}
return ostd;
}
# | 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... |