# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
386274 | jjang36524 | 로봇 (IOI13_robots) | C++14 | 2300 ms | 38124 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "robots.h"
#include <algorithm>
#include <queue>
#include <vector>
#include <string.h>
using namespace std;
vector<int>Wl[100000];
vector<int>Sl[100000];
int us[1000100];
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[])
{
sort(X,X+A);
sort(Y,Y+B);
int i;
for(i=0;i<T;i++)
{
int x=upper_bound(X,X+A,W[i])-X;
int y=upper_bound(Y,Y+B,S[i])-Y;
if(x==A&&y==B)
{
return -1;
}
Wl[x].push_back(i);
Sl[y].push_back(i);
}
int s=1;
int e=T;
while(s!=e)
{
int m=(s+e)/2;
priority_queue<pair<int,int>>tc;
memset(us,0,sizeof(us));
int i;
int c=0;
for(i=0;i<A;i++)
{
int j;
for(j=0;j<Wl[i].size();j++)
{
tc.push({S[Wl[i][j]],Wl[i][j]});
}
for(j=0;j<m;j++)
{
if(tc.empty())
break;
auto a=tc.top();
tc.pop();
us[a.second]=1;
c++;
}
}
int cc=0;
for(i=0;i<B;i++)
{
int j;
for(j=0;j<Sl[i].size();j++)
{
if(!us[Sl[i][j]])
{
cc++;
}
}
if(cc>=m)
c+=m;
else
c+=cc;
cc=max(0,cc-m);
}
if(c!=T)
s=m+1;
else
e=m;
}
return s;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |