Submission #1127530

#TimeUsernameProblemLanguageResultExecution timeMemory
1127530lamReconstruction Project (JOI22_reconstruction)C++20
7 / 100
5093 ms2788 KiB
#include <bits/stdc++.h> using namespace std; #define task "railroad" #define etr "\n" #define ll long long #define ld long double #define pii pair<int, int> #define pll pair<ll, ll> #define fi first #define se second #define pb push_back #define all(x) x.begin(), x.end() #define range(x, l, r) x+l, x+1+r void freop() { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } template<class U, class V> ostream& operator << (ostream& out, vector<U, V> v) { out << "(" << v.fi << ", " << v.se << ")"; return out; } template<class T> ostream& operator << (ostream& out, vector<T> v) { out << "{"; for (int i=0; i<v.size(); i++) { out << v[i]; if (i != v.size() - 1) out << ", "; } out << "}"; return out; } const int N = 500, M = 1e5; int n, m, q; array<int, 3> a[M+5]; namespace Sub2 { struct DSU { vector<int> par; DSU() : par(n+5, -1) {} int root(int u) { return par[u] < 0 ? u : par[u] = root(par[u]); } bool connect(int u, int v) { u = root(u), v = root(v); if (u == v) return false; if (-par[u] < -par[v]) swap(u, v); par[u] += par[v]; par[v] = u; return true; } }; array<int, 3> tmp[M+5]; ll calc(int x) { DSU dsu; for (int i=1; i<=m; i++) { tmp[i] = a[i]; tmp[i][2] = abs(x - a[i][2]); } sort(range(tmp, 1, m), [](array<int, 3> x, array<int, 3> y){return x[2] < y[2];}); ll res = 0; for (int i=1; i<=m; i++) { if (dsu.connect(tmp[i][0], tmp[i][1])) { res += tmp[i][2]; } } return res; } void solve() { for (int i=1; i<=q; i++) { int x; cin >> x; cout << calc(x) << etr; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); // freop(); cin >> n >> m; for (int i=1; i<=m; i++) { for (int j=0; j<3; j++) cin >> a[i][j]; } cin >> q; Sub2::solve(); }

Compilation message (stderr)

reconstruction.cpp: In function 'void freop()':
reconstruction.cpp:18:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     freopen(task".inp", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
reconstruction.cpp:19:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |     freopen(task".out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...