Submission #392915

#TimeUsernameProblemLanguageResultExecution timeMemory
392915kimbj0709Robots (IOI13_robots)C++14
100 / 100
1800 ms13940 KiB
#include "robots.h" #include<bits/stdc++.h> using namespace std; #define f first #define s second vector<pair<int,int> > items; vector<int> typ1,typ2; bool can(int num){ int currpos = 0; priority_queue<int> q1; multiset<int> set1; for(int i=0;i<typ1.size();i++){ while(currpos<items.size()&&items[currpos].f<=typ1[i]){ q1.push(items[currpos].s); currpos++; } for(int j=0;j<num;j++){ if(q1.size()==0){ break; } q1.pop(); } } while(currpos<items.size()){ q1.push(items[currpos].s); currpos++; } for(int i=0;i<typ2.size();i++){ for(int j=0;j<num;j++){ if(q1.size()==0){ return 1; } if(q1.top()>typ2[i]){ return 0; } q1.pop(); } } if(q1.size()==0){ return 1; } return 0; } int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { for(int i=0;i<A;i++){ X[i]--; typ1.push_back(X[i]); } for(int i=0;i<B;i++){ Y[i]--; typ2.push_back(Y[i]); } for(int i=0;i<T;i++){ items.push_back({W[i],S[i]}); } sort(items.begin(),items.end()); sort(typ1.begin(),typ1.end()); sort(typ2.begin(),typ2.end()); reverse(typ2.begin(),typ2.end()); int lo = 0,hi = T+3; while(lo+1!=hi){ int mid = (lo+hi)/2; if(can(mid)){ hi = mid; } else{ lo = mid; } } if(lo>T){ return -1; } return lo+1; }

Compilation message (stderr)

robots.cpp: In function 'bool can(int)':
robots.cpp:12:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |   for(int i=0;i<typ1.size();i++){
      |               ~^~~~~~~~~~~~
robots.cpp:13:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     while(currpos<items.size()&&items[currpos].f<=typ1[i]){
      |           ~~~~~~~^~~~~~~~~~~~~
robots.cpp:24: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]
   24 |   while(currpos<items.size()){
      |         ~~~~~~~^~~~~~~~~~~~~
robots.cpp:28:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |   for(int i=0;i<typ2.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...