Submission #659371

#TimeUsernameProblemLanguageResultExecution timeMemory
659371angelo_torresRobots (IOI13_robots)C++17
76 / 100
136 ms20360 KiB
#include <bits/stdc++.h> #include "robots.h" #define sz(v) (int) v.size() using namespace std; typedef pair<int,int> ii; typedef vector<pair<int,int>> vii; vector<int> a,b; int g[1005][1005],pr[1005][1005]; int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]){ // A -> X -> W[i] < X[i] // B -> Y -> S[i] < Y[i] for(int i = 0; i < A; ++i) a.push_back(X[i]); for(int i = 0; i < B; ++i) b.push_back(Y[i]); sort(a.begin(),a.end()), sort(b.begin(),b.end()); // g[i][j] : number of toys that can be carry for // i-th weak robot but not for i+1-th weak robot, // and for j-th small robot but not for j+1-th small // robot for(int i = 0; i < T; ++i){ // 0 1 2 // 4 7 9 // W[i] < a[] -> w[i] >= a[] int id = (int) (lower_bound(a.begin(),a.end(),W[i]+1)-a.begin()); int jd = (int) (lower_bound(b.begin(),b.end(),S[i]+1)-b.begin()); g[id][jd]++; } for(int i = 0; i <= sz(a); ++i){ for(int j = 0; j <= sz(b); ++j){ pr[i][j] = g[i][j]; if(j > 0) pr[i][j] += pr[i][j-1]; if(i > 0) pr[i][j] += pr[i-1][j]; if(i > 0 && j > 0) pr[i][j] -= pr[i-1][j-1]; } } int ans = 0; for(int i = 0; i < sz(a)+1; ++i){ for(int j = 0; j < sz(b)+1; ++j){ // i sz(a) j sz(b) int kp = pr[sz(a)][sz(b)]; if(j > 0) kp -= pr[sz(a)][j-1]; if(i > 0) kp -= pr[i-1][sz(b)]; if(i > 0 && j > 0) kp += pr[i-1][j-1]; int nr = A+B-i-j; if(nr == 0){ if(kp != 0) return -1; break; } ans = max(ans,(kp+nr-1)/nr); } } return ans; } // int main(){ // int A,B,T; // cin >> A >> B >> T; // int X[A+10],Y[B+10],W[T+10],S[T+10]; // 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) << "\n"; // }
#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...