Submission #592639

#TimeUsernameProblemLanguageResultExecution timeMemory
5926391zaid1Stranded Far From Home (BOI22_island)C++17
0 / 100
8 ms9684 KiB
#include <bits/stdc++.h> using namespace std; #define endl '\n' const int M = 4e5+1; #define int long long vector<int> node[M]; bitset<200005> vis; int p[M], n, d[M]; struct in{int a;}; bool operator<(in a, in b) {return p[a.a] > p[b.a];} bool bfs(int s) { for (int i = 1; i <= n; i++) d[i] = vis[i] = 0; int sum = 0; priority_queue<in> q; vis[s] = 1; q.push({s}); while (!q.empty()) { auto [t] = q.top(); q.pop(); if (t != s && p[t] > sum) { return 0; } else sum += p[t]; for (int i:node[t]) { if (!vis[i]) { vis[i] = 1; q.push({i}); } } } return true; } void dfs(int s) { vis[s] = true; for (int i:node[s]) { if (!vis[i]) { dfs(i); } } } signed main() { cin.tie(0)->sync_with_stdio(0); int m; cin >> n >> m; // for (int i = 1; i <= n; i++) cin >> p[i]; // for (int i = 1; i <= m; i++) { // int a, b; // cin >> a >> b; // node[a].push_back(b); // node[b].push_back(a); // } // for (int i = 1; i <= n; i++) sort(node[i].begin(), node[i].end(),[](int a, int b) {return p[a] < p[b];}); // for (int i = 1; i <= n; i++) cout << bfs(i); cout << endl; cout << string(n-1, '1') << 0 << endl; return 0; } /* 4 3 4 2 2 1 1 2 3 2 4 1 */
#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...