이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define first X
#define second Y
#define eb emplace_back
#define ALL(i) i.begin(),i.end()
#define SZ(i) int(i.size())
#ifdef tmd
#define debug(...) fprintf(stderr,"#%d-(%s)=",__LINE__,#__VA_ARGS__);_do(__VA_ARGS__);
template<typename T> void _do (T &&x) {cerr<<x<<endl;}
template<typename T, typename ...S> void _do(T &&x, S &&...y) {cerr<<x<<",";_do(y...);}
template<typename IT> ostream &__printRng (ostream& os, IT bg, IT ed) {
for (IT it=bg; it!=ed; it++) {
if (it == bg) os << "{" << *it;
else os << "," << *it;
}
return os << "}";
}
template<typename T> ostream &operator << (ostream& os, const vector<T> &vec) {
return __printRng(os,ALL(vec));
}
#else
#define debug(...)
#endif
#include "gondola.h"
int valid(int n, int inputSeq[])
{
vector<int> sm;
set<int> val;
for (int i=0; i<n; i++) {
if (inputSeq[i] <= n) {
sm.push_back(inputSeq[i]);
val.insert(inputSeq[i]);
}
}
if (SZ(val) != n) return 0;
int st = min_element(ALL(sm)) - sm.begin();
for (int i=0; i<SZ(sm)-1; i++) {
if (inputSeq[(st+i)%SZ(sm)] >= inputSeq[(st+i+1)%SZ(sm)]) {
return 0;
}
}
return 1;
}
//----------------------
const int MAXN = 250005;
int replacement(int n, int gondolaSeq[], int rs[])
{
set<int> alive;
vector<int> fin, cur;
int off = 1;
for (int i=0; i<n; i++) {
fin.eb(gondolaSeq[i]);
if (fin.back() > n) alive.insert(i);
else off = (n+fin.back()-i) % n;
}
debug(off);
for (int i=0; i<n; i++) {
cur.eb((off + i - 1) % n + 1);
}
debug(cur);
int mx = *max_element(ALL(fin));
vector<int> pos(mx+1, -1);
for (int i=0; i<SZ(fin); i++) {
pos[fin[i]] = i;
}
int res = 0;
for (int i=n+1; i<=mx; i++) {
if (pos[i] == -1) {
int p = *alive.begin();
rs[res++] = cur[p];
cur[p] = i;
} else {
assert(alive.count(pos[i]));
alive.erase(pos[i]);
rs[res++] = cur[pos[i]];
cur[pos[i]] = i;
}
debug(cur);
}
return res;
}
//----------------------
int countReplacement(int n, int inputSeq[])
{
return -3;
}
# | 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... |
# | 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... |