제출 #71800

#제출 시각아이디문제언어결과실행 시간메모리
71800tamtam로봇 (IOI13_robots)C++14
14 / 100
316 ms59100 KiB
#include "robots.h" #include<bits/stdc++.h> #define F first #define S second typedef long long ll; using namespace std; int n; int a,b; int robs[100010]; int robw[100010]; int weight[1000010]; bool check1(int x){ int l=0; int j=0; int cur=0; while (l<n){ if (cur==x){ cur=0; j++; if (j==a)return 0; } if (weight[l]<robw[j]){ l++; cur++; }else { j++; cur=0; if (j==a)return 0; } } return 1; } int bs1(){ int st=1; int en=n; int mid; int ans=n; while (st<=en){ mid=(st+en)/2; if (check1(mid)){ en=mid-1; ans=mid; }else { st=mid+1; } } return ans; } int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { a=A;b=B;n=T; for (int i=0;i<A;i++){ robw[i]=X[i]; } for (int i=0;i<B;i++){ robs[i]=Y[i]; } for (int i=0;i<n;i++){ weight[i]=W[i]; } sort(weight,weight+n); sort(robs,robs+b); sort(robw,robw+a); for (int i=0;i<n;i++){ if (W[i]>=robw[a-1]&&S[i]>=robs[b-1]){ return -1; } } if (A+B==2&&T==2){ } if (B==0){ return bs1(); } return 42; } /* int main (){ int A,B,T; int X[100010]; int Y[100010]; int W[100010]; int S[100010]; cin >>A>>B>>T; for (int i=0;i<A;i++){ cin >>X[i]; } for (int i=0;i<B;i++){ cin >>Y[i]; } for (int i=0;i<T;i++){ cin >>W[i]>>S[i]; } cout <<putaway(A,B,T,X,Y,W,S)<<endl; return 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...