#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct dsu
{
vector<int> par;
int cnt;
dsu (int sz)
{
cnt = sz;
par = vector<int>(sz);
for (int i = 0; i < sz; i++)
par[i]=i;
}
int mnz(int x)
{
return par[x] = (x == par[x] ? x : mnz(par[x]));
}
void zd(int x, int y)
{
x=mnz(x);
y=mnz(y);
if (x==y)return;
cnt--;
par[y]=x;
}
};
const ll inf = 1e9;
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
int n = (int)s.size();
vector<pair<int, int>> a, a1;
for (int i = 0; i < n; i++)
{
a.push_back({s[i], i});
a1.push_back({t[i], i});
}
a.push_back({inf, n});
a1.push_back({-inf, n});
sort(a.begin(), a.end());
sort(a1.begin(), a1.end());
dsu ins(n);
for (int i = 0; i < n; i++)
{
// cout << ins.cnt << " " << a[i].second << " " << a1[i].second << "\n";
if (a[i].first < a1[i].first) return 1;
if (i)
{
ins.zd(a[i].second, a1[i].second);
if (a[i-1].first >= a1[i].first)
ins.zd(a[i-1].second, a1[i].second);
}
}
// cout << ins.cnt << "\n";
return (ins.cnt != 1);
}
컴파일 시 표준 에러 (stderr) 메시지
railroad.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | 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... |