제출 #31458

#제출 시각아이디문제언어결과실행 시간메모리
31458top34051Robots (IOI13_robots)C++14
76 / 100
3000 ms22572 KiB
#include "robots.h" #include<bits/stdc++.h> using namespace std; struct node { int id,x,y; node(int _id = 0,int _x = 0,int _y = 0) { id = _id; x = _x; y = _y; } }; int n,m,k; int a[50005], b[50005]; bool ok[1000005]; node p[1000005]; map<int,long long> mp; bool cmpx(node x,node y) { return x.x>y.x; } bool cmpy(node x,node y) { return x.y>y.y; } bool check(int cnt) { int i; map<int,long long>::iterator it; memset(ok,0,sizeof(ok)); mp.clear(); for(i=0;i<n;i++) mp[a[i]] += cnt; sort(&p[0],&p[k],cmpy); for(i=0;i<k;i++) { it = mp.upper_bound(p[i].x); if(it==mp.end()) continue; it->second--; if(it->second==0) mp.erase(it); ok[p[i].id] = 1; // printf("%d %d => %d\n",p[i].x,p[i].y,it->first); } mp.clear(); for(i=0;i<m;i++) mp[b[i]] += cnt; sort(&p[0],&p[k],cmpx); for(i=0;i<k;i++) { if(ok[p[i].id]) continue; it = mp.upper_bound(p[i].y); if(it==mp.end()) continue; it->second--; if(it->second==0) mp.erase(it); ok[p[i].id] = 1; // printf("%d %d => %d\n",p[i].x,p[i].y,it->first); } for(i=0;i<k;i++) if(!ok[i]) return 0; return 1; } int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { int i,l,r,mid,ans; n = A; m = B; k = T; for(i=0;i<n;i++) a[i] = X[i]; for(i=0;i<m;i++) b[i] = Y[i]; for(i=0;i<k;i++) p[i] = node(i,W[i],S[i]); l = 1; r = k; ans = -1; while(l<=r) { mid = (l+r)/2; // printf("check %d\n",mid); if(check(mid)) { ans = mid; r = mid-1; } else l = mid+1; } if(ans==0) printf("%d",1/0); return ans; }

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

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:73:29: warning: division by zero [-Wdiv-by-zero]
     if(ans==0) printf("%d",1/0);
                             ^
#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...