이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
void debug_out() {cerr<<endl;}
template <typename Head, typename... Tail>
void debug_out(Head _H, Tail... _T) {cerr<<" "<<to_string(_H);debug_out(_T...);}
#define debug(...) cerr<<"["<<#__VA_ARGS__<<"]:",debug_out(__VA_ARGS__)
#else
#define debug(...)
#endif
const int MAXN = -1;
const int inf=1000000500ll;
const long long oo =1000000000000000500ll;
const int MOD = (int)1e9 + 7;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
typedef pair<int,int> pi;
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
multiset<pi> in, out;
int n=s.size();
for(int i=0;i<n;i++){
in.insert({s[i],t[i]});
out.insert({t[i],s[i]});
}
while((int)out.size() > 1){
int mn=out.begin()->first;
pi cur=*out.begin();
out.erase(out.begin());
in.erase(in.find({cur.second,cur.first}));
auto iter=in.lower_bound({mn,0});
if(iter == in.end()){
return 1;
}
pi nxt=*iter;
in.erase(iter);
out.erase(out.find({nxt.second,nxt.first}));
pi newtrack={cur.second,nxt.second};
in.insert({newtrack.first,newtrack.second});
out.insert({newtrack.second,newtrack.first});
}
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... |