Submission #884775

#TimeUsernameProblemLanguageResultExecution timeMemory
884775dsyzRobots (IOI13_robots)C++17
100 / 100
1682 ms49828 KiB
#include <bits/stdc++.h> #include "robots.h" using namespace std; using ll = long long; #define MAXN (1000005) ll numW, numS, numT; //num of Weak Robots, num of Small Robots, num of Toys vector<ll> Wlimit, Slimit; //weight limit is X, size limit is Y deque<pair<ll,ll> > TOYS; //weight, size bool bs(ll mid){ deque<pair<ll,ll> > toys; for(ll i = 0;i < numT;i++){ toys.push_back(TOYS[i]); } priority_queue<pair<ll,ll> > Stoys; //sort by decreasing size for(ll i = 0;i < numW;i++){ while(!toys.empty() && toys.front().first < Wlimit[i]){ Stoys.push({toys.front().second,toys.front().first}); toys.pop_front(); } for(ll j = 0;j < mid && !Stoys.empty();j++){ Stoys.pop(); } } for(ll i = 0;i < toys.size();i++){ swap(toys[i].first,toys[i].second); } while(!Stoys.empty()){ toys.push_back(Stoys.top()); Stoys.pop(); } sort(toys.begin(),toys.end()); for(ll i = 0;i < numS;i++){ for(ll j = 0;j < mid && !toys.empty();j++){ if(toys.front().first >= Slimit[i]) break; toys.pop_front(); } } return toys.empty(); } int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { numW = A; numS = B; numT = T; for(ll i = 0;i < numW;i++){ Wlimit.push_back(X[i]); } for(ll i = 0;i < numS;i++){ Slimit.push_back(Y[i]); } for(ll i = 0;i < numT;i++){ TOYS.push_back({W[i],S[i]}); } sort(Wlimit.begin(),Wlimit.end()); sort(Slimit.begin(),Slimit.end()); sort(TOYS.begin(),TOYS.end()); ll high = T + 5; ll low = 0; bool ok = 0; while(high - low > 1){ ll mid = (high + low) / 2; if(bs(mid)){ high = mid; ok = 1; }else{ low = mid; } } if(!ok){ return -1; }else{ return high; } }

Compilation message (stderr)

robots.cpp: In function 'bool bs(ll)':
robots.cpp:24:17: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::deque<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |  for(ll i = 0;i < toys.size();i++){
      |               ~~^~~~~~~~~~~~~
#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...