제출 #1191690

#제출 시각아이디문제언어결과실행 시간메모리
1191690LucaLucaMRoller Coaster Railroad (IOI16_railroad)C++20
0 / 100
113 ms11020 KiB
#include "railroad.h" #include <iostream> #include <vector> #include <algorithm> #include <cassert> #define debug(x) #x << " = " << x << '\n' using ll = long long; const int INF = 1e9; namespace DSU { std::vector<int> p; std::vector<int> sz; void init(int n) { p.resize(n + 1); sz.resize(n + 1, 1); for (int i = 0; i <= n; i++) { p[i] = i; } } int root(int u) { return p[u] == u? u : p[u] = root(p[u]); } void join(int u, int v) { u = root(u); v = root(v); if (u != v) { p[u] = v; sz[v] += sz[u]; } } bool isConnected() { return sz[root(1)] == (int) p.size() - 1; } }; ll plan_roller_coaster(std::vector<int> s, std::vector<int> t) { int n = (int) s.size(); std::vector<int> norm; s.push_back(INF); t.push_back(1); for (int x : s) { norm.push_back(x); } for (int x : t) { norm.push_back(x); } std::sort(norm.begin(), norm.end()); norm.erase(std::unique(norm.begin(), norm.end()), norm.end()); for (int &x : s) { x = std::lower_bound(norm.begin(), norm.end(), x) - norm.begin() + 1; } for (int &x : t) { x = std::lower_bound(norm.begin(), norm.end(), x) - norm.begin() + 1; } int m = (int) norm.size(); std::vector<int> delta(m + 1, 0); DSU::init(m); for (int i = 0; i <= n; i++) { if (s[i] <= t[i]) { delta[s[i]]++; delta[t[i]]--; } else { delta[t[i]]--; delta[s[i]]++; } DSU::join(s[i], t[i]); } for (int i = 1; i <= m; i++) { delta[i] += delta[i - 1]; } for (int i = 0; i <= m; i++) { if (delta[i] > 0) { return 1; } if (delta[i] < 0) { DSU::join(i, i + 1); } } return 0; if (DSU::isConnected()) { return 0; } else { return 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...