제출 #198994

#제출 시각아이디문제언어결과실행 시간메모리
198994maximath_1로봇 (IOI13_robots)C++11
0 / 100
275 ms13036 KiB
#include"robots.h" #include<bits/stdc++.h> using namespace std; int n, a, b; vector<pair<int, int> >v; vector<int>vv[50005]; bool ok(int x){ int sisa=0; vector<int>isi; priority_queue<int>pq; for(int i=0; i<vv[0].size(); i++) isi.push_back(vv[0][i]); for(int i=1; i<=a; i++){ int siz=vv[i].size(); for(int j=0; j<siz; j++) pq.push(vv[i][j]); if(sisa>=siz-x) sisa+=x-siz; else{ for(int j=1; j<=siz-x-sisa; j++){ if(pq.empty()) return false; isi.push_back(pq.top()); pq.pop(); } sisa=0; } } sort(isi.begin(), isi.end()); for(int i=0; i<isi.size(); i++){ int tmp=i/x+1; if(tmp>b || tmp>isi[i]) return false; } return true; } int putaway(int _a, int _b, int _t, int x[], int y[], int w[], int s[]){ n=_t; a=_a; b=_b; sort(x, x+a); sort(y, y+b); v.resize(n); for(int i=0; i<n; i++){ v[i]=make_pair(w[i], s[i]); if(w[i]>=x[a-1] && s[i]>=y[b-1]) return -1; } for(int i=0; i<n; i++){ int l=0, r=a-1, md, wt, sz; while(l<=r){ md=(l+r)/2; if(v[i].first<x[md]){ wt=a-md; r=md-1; }else l=md+1; } l=0, r=b-1; while(l<=r){ md=(l+r)/2; if(v[i].second<y[md]){ sz=b-md; r=md-1; }else l=md+1; } vv[wt].push_back(sz); } int ans=-1; int l=1, r=n, md; while(l<=r){ md=(l+r)/2; if(ok(md)){ ans=md; r=md-1; }else l=md+1; } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

robots.cpp: In function 'bool ok(int)':
robots.cpp:11:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<vv[0].size(); i++)
               ~^~~~~~~~~~~~~
robots.cpp:27:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<isi.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...