제출 #1138132

#제출 시각아이디문제언어결과실행 시간메모리
1138132raspyRoller Coaster Railroad (IOI16_railroad)C++20
30 / 100
72 ms7376 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...