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 "teams.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef complex<ld> point;
void debug_out(){cerr << endl;}
template<typename Head, typename... Tail>
void debug_out(Head H, Tail... T){
cerr << H << ' ';
debug_out(T...);
}
#define debug(...) cerr << "(" << #__VA_ARGS__ << "): ", debug_out(__VA_ARGS__)
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define MP(x, y) make_pair(x, y)
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int maxn = 5e5 + 10;
const int lg = 20;
int n;
vector<int> val[maxn];
void init(int N, int A[], int B[]){
n = N;
for (int i = 0; i < n; i++){
val[A[i]].push_back(B[i]);
}
}
multiset<int> st;
int can(int M, int K[]) {
sort(K, K+M);
int ptr = 0;
for (int i = 0; i < M; i++){
while(ptr < K[i]){
ptr++;
for (auto x: val[ptr]){
st.insert(x);
}
}
int tmp = K[i];
while(!st.empty() && *(st.begin()) < K[i]) st.erase(st.begin());
while(tmp--){
if (st.empty()) return 0;
st.erase(st.begin());
}
}
return 1;
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... |