제출 #794377

#제출 시각아이디문제언어결과실행 시간메모리
794377TahirAliyevStranded Far From Home (BOI22_island)C++17
10 / 100
1086 ms13608 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") using namespace std; #define ll long long int #define oo 4e18 #define pii pair<int, int> const int MAX = 2e5 + 5; int arr[MAX]; int ans[MAX]; vector<int> g[MAX]; bool collected[MAX]; bool djikstra(int node){ memset(collected, 0, sizeof(collected)); ll sum = arr[node]; collected[node] = 1; set<pii> s; for(int to : g[node]){ s.insert({arr[to], to}); } while(!s.empty()){ pii a = *(s.begin()); if(a.first > sum){ return 0; } sum += a.first; collected[a.second] = 1; s.erase(s.begin()); for(int to : g[a.second]){ if(collected[to]) continue; s.insert({arr[to], to}); } } return 1; } int main(){ int n, m; cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> arr[i]; } for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } for (int i = 1; i <= n; i++) { cout << djikstra(i); } }
#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...