이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef int INT;
#define pb push_back
#define fst first
#define snd second
#define FOR(i,l,r) for(int i = (l); i < (r); i++)
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int,int> ii;
typedef vector<ii> vii;
vii intervals;
vii idx;
INT GetBestPosition(INT N, INT C, INT R, INT *K, INT *S, INT *E) {
idx.resize(N);
FOR(i, 0, N) idx[i] = {i,i};
FOR(i, 0, C){
intervals.pb({idx[S[i]].fst, idx[E[i]].snd});
idx.erase(idx.begin() +S[i], idx.begin() + E[i]);
idx[S[i]].fst = intervals.back().fst;
}
//for(ii p : intervals) cout << p.fst << " " << p.snd << endl;
vi val(C, -1);
FOR(i, 0, C) FOR(j, intervals[i].fst, intervals[i].snd){
val[i] = max(val[i], K[j]);
}
int best = 0;
//for(int k : val) cout << k << endl;
FOR(i, 0, N) {
int tot = 0;
FOR(c,0,C) if(intervals[c].fst <= i and i < intervals[c].snd){
tot += val[c] < R;
}
best = max(best, tot);
}
return best;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |