This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define sz(x) (int)x.size()
#define ALL(v) v.begin(),v.end()
#define MASK(k) (1LL << (k))
#define BIT(x, i) (((x) >> (i)) & 1)
#define oo (ll)1e18
#define INF (ll)1e9*2
#define MOD (ll)(1e9 + 7)
#include "robots.h"
using namespace std;
template<class T1, class T2>
bool maximize(T1 &a, T2 b){if(a < b){a = b; return true;} return false;}
template<class T1, class T2>
bool minimize(T1 &a, T2 b){if(a > b){a = b; return true;} return false;}
template<class T1, class T2>
void add(T1 &a, T2 b){a += b; if(a >= MOD) a -= MOD;}
template<class T1, class T2>
void sub(T1 &a, T2 b){a -= b; if(a < 0) a += MOD;}
template<class T>
void cps(T &v){sort(ALL(v)); v.resize(unique(ALL(v)) - v.begin());}
const int MAX = 1e6 + 10;
int N, M, K;
int week[MAX], small[MAX];
pair<int, int> stuff[MAX];
bool OK(int s){
priority_queue<int> pq;
int j = 1;
for(int i=1; i<=N; i++){
while(j <= K && stuff[j].fi < week[i]){
pq.push(stuff[j].se);
j++;
}
for(int k=0; k<s; k++){
if(pq.empty()) break;
pq.pop();
}
}
while(j <= K){
pq.push(stuff[j].se);
j++;
}
for(int i=M; i>=1; i--){
if(!pq.empty() && pq.top() >= small[i]) return false;
if(pq.empty()) return true;
for(int k=0; k<s; k++){
if(pq.empty() || pq.top() >= small[i]) break;
pq.pop();
}
}
return pq.empty();
}
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]){
N = A;
M = B;
K = T;
for(int i=1; i<=N; i++){
week[i] = X[i - 1];
}
for(int i=1; i<=M; i++){
small[i] = Y[i - 1];
}
for(int i=1; i<=K; i++){
stuff[i] = make_pair(W[i - 1], S[i - 1]);
}
sort(week + 1, week + N + 1);
sort(small + 1, small + M + 1);
sort(stuff + 1, stuff + K + 1);
if(!OK(K)) return -1;
int l = 1, r = K;
while(l < r){
int m = (l + r) >> 1;
if(OK(m)){
r = m;
}
else{
l = m + 1;
}
}
return r;
}
//signed main(){
// ios_base::sync_with_stdio(0); cin.tie(0);
//// freopen("mulgame.inp", "r", stdin);
//// freopen("mulgame.out", "w", stdout);
//
// solve();
//
// return 0;
//}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |