Submission #993211

#TimeUsernameProblemLanguageResultExecution timeMemory
993211MrDebooRobots (IOI13_robots)C++17
76 / 100
3097 ms53940 KiB
#include "robots.h" #include "bits/stdc++.h" using namespace std; vector<pair<int,int>>v; int mid; bool slv(deque<int>dq){ map<pair<int,int>,int>mp; priority_queue<pair<int,int>>pq; int l=0; for(int i=0;i<dq.size();i++){ while(l<v.size()&&dq[i]>v[l].first){ pq.push({v[l].second,v[l].first}); l++; } int k=mid; while(pq.size()&&k--){ mp[{pq.top().second,pq.top().first}]++; pq.pop(); } } vector<pair<int,int>>vec; for(auto &i:v){ if(mp[i]){ mp[i]--; }else vec.push_back(i); } v=vec; return vec.empty(); } int putaway(int A, int B, int t, int x[], int y[], int w[], int s[]) { for(int i=0;i<t;i++)v.push_back({w[i],s[i]}); deque<int>a,b; for(int i=0;i<A;i++)a.push_back(x[i]); for(int i=0;i<B;i++)b.push_back(y[i]); sort(a.begin(),a.end()); sort(b.begin(),b.end()); int l=0,r=t,f=-1; vector<pair<int,int>>vec=v; while(l<=r){ mid=(l+r)/2; v=vec; sort(v.begin(),v.end()); slv(a); for(auto &i:v)swap(i.first,i.second); sort(v.begin(),v.end()); bool bl=slv(b); for(auto &i:v)swap(i.first,i.second); if(bl){ r=mid-1; f=mid; }else l=mid+1; } return f; }

Compilation message (stderr)

robots.cpp: In function 'bool slv(std::deque<int>)':
robots.cpp:10:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i=0;i<dq.size();i++){
      |                 ~^~~~~~~~~~
robots.cpp:11:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |         while(l<v.size()&&dq[i]>v[l].first){
      |               ~^~~~~~~~~
#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...