Submission #593268

#TimeUsernameProblemLanguageResultExecution timeMemory
5932681zaid1Stranded Far From Home (BOI22_island)C++17
0 / 100
209 ms52140 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' const int M = 4e5+1; #define int long long vector<int> node[M]; int p[M], sum[M], k[M]; vector<int> bt[M]; int find(int s) { return (s == p[s]?s:p[s]=find(p[s])); } void uni(int x, int y) { if (bt[x].size() < bt[y].size()) swap(x, y); for (int i:bt[y]) bt[x].push_back(i); bt[y].clear(); p[y] = x; sum[x] += sum[y]; } signed main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) cin >> k[i]; for (int i = 1; i <= m; i++) { int a, b; cin >> a >> b; if (p[a] >= p[b]) node[a].push_back(b); else node[b].push_back(a); } vector<int> v; for (int i = 1; i <= n; i++) { p[i] = i; bt[i] = {i}; sum[i] = k[i]; // cout << i << ": "; // for (int j:node[i]) cout << j << ' '; cout << endl; } for (int i = 1; i <= n; i++) v.push_back(i); sort(v.begin(), v.end(), [](int a, int b) {return k[a] < k[b];}); for (int s:v) { for (int i:node[s]) { if (find(i) == find(s)) continue; if (sum[find(i)] < k[s]) bt[find(i)].clear(); uni(find(s), find(i)); } } bitset<200005> x; for (int i:bt[find(1)]) x[i] = 1; for (int i = 1; i <= n; i++) cout << x[i]; cout << endl; return 0; } /* 4 3 4 2 2 1 1 2 3 2 4 1 4 4 2 2 4 3 1 2 1 3 2 3 3 4 */

Compilation message (stderr)

island.cpp: In function 'int main()':
island.cpp:58:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   58 |     for (int i = 1; i <= n; i++) cout << x[i]; cout << endl;
      |     ^~~
island.cpp:58:48: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   58 |     for (int i = 1; i <= n; i++) cout << x[i]; cout << endl;
      |                                                ^~~~
#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...