제출 #1325320

#제출 시각아이디문제언어결과실행 시간메모리
1325320vicvic로봇 (IOI13_robots)C++20
100 / 100
1275 ms8832 KiB
#include <bits/stdc++.h> #include "robots.h" using namespace std; int putaway (int n, int m, int t, int x[], int y[], int w[], int s[]) { sort (x, x+n), sort (y, y+m); vector <int> ind (t, 0); for (int i=0;i<t;i++) ind[i]=i; sort (ind.begin(), ind.end(), [&] (int a, int b) {return w[a]<w[b];}); int st=1, dr=t+1, poz=t+1; priority_queue <int> pq; auto check = [&] (int val) { int nxt=0; for (int i=0;i<n;i++) { while (nxt<t && w[ind[nxt]]<x[i]) pq.push (s[ind[nxt++]]); int remain=val; while (!pq.empty() && remain--) pq.pop (); } while (nxt<t) pq.push (s[ind[nxt++]]); for (int i=m-1;i>=0;i--) { int remain=val; while (remain-- && !pq.empty() && pq.top()<y[i]) pq.pop (); } return pq.empty(); }; while (st<=dr) { int mij = (st+dr) >> 1; while (!pq.empty()) pq.pop (); if (check (mij)) dr=mij-1, poz=mij; else st=mij+1; } return (poz==t+1?-1:poz); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...