제출 #668341

#제출 시각아이디문제언어결과실행 시간메모리
668341Dremix10로봇 (IOI13_robots)C++17
0 / 100
3083 ms29260 KiB
#include "robots.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define F first #define S second #define enter cout<<'\n'; int putaway(int a, int b, int t, int x[], int y[], int W[], int Se[]) { pair<ll,ll> w[t],s[t]; for(int i=0;i<t;i++) { w[i].F=W[i]; w[i].S=i; s[i].F=Se[i]; s[i].S=i; } sort(x,x+a); sort(y,y+b); sort(w,w+t); sort(s,s+t); if((x[a-1]<=w[t-1].F && y[b-1]<=Se[w[t-1].S]) || (y[b-1]<=s[t-1].F && x[a-1]<=W[s[t-1].S]) ) return -1; ll idx=0; ll arr[a]; for(int i=0;i<a;i++) { while(idx<t && w[idx].F<x[i]) { idx++; } arr[i]=idx; } bool taken[t]={ }; ll ans=9999999999; ll l=1,r=t+1; priority_queue<pair<ll,ll>>pq; while(l<r) { ll left=t; ll minus=0; ll time=(l+r)/2; ll pre=0; for(int i=0;i<a;i++) { for(int j=pre;j<arr[i];j++) pq.push({Se[w[j].S],w[j].S}); pre=arr[i]; ll c=time; while(!pq.empty() && c--) { taken[pq.top().S]=true; pq.pop(); } //left-=min(time,(arr[i]-minus)); //minus+=min(time,(arr[i]-minus)); } ll idx2=0; ll arr2[b]; for(int i=0;i<b;i++) { while(idx2<t && s[idx2].F<y[i]) { if(taken[s[idx2].S]) idx2++; } } left = t; for(int i=0;i<t;i++){ if(taken[i] == 1)left--; } if(left==0) { ans=min(ans,time); r=time; } else l=time+1; for(int i=0;i<t;i++) taken[i]=0; } return ans; }

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

robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:53:5: warning: unused variable 'minus' [-Wunused-variable]
   53 |  ll minus=0;
      |     ^~~~~
robots.cpp:75:6: warning: unused variable 'arr2' [-Wunused-variable]
   75 |   ll arr2[b];
      |      ^~~~
#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...