Submission #587078

#TimeUsernameProblemLanguageResultExecution timeMemory
587078fuad27Stranded Far From Home (BOI22_island)C++17
10 / 100
1050 ms23280 KiB
/* * Created: 2022-07-01 13:35 */ #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; using namespace chrono; // using namespace atcoder template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; typedef long long ll; typedef long double ld; const ll inf = 1e18; #define pii pair<int,int> #define pll pair<ll,ll> #define vi vector<int> #define vll vector<ll> #define rep(i, a, b) for(int i = (a);i<(b);i++) #define repn(i, a, b) for(int i = (a);i>=(b);i--) #define ss second #define ff first #define mkp make_pair #define pb push_back #define all(x) (x).begin(), (x).end() const int N = 200'010; vll g[N]; ll s[N]; void solve() { int n, m; cin >> n >> m; rep(i, 0, n) { cin >> s[i]; } rep(i, 0, m) { int a, b; cin >> a >> b; a--,b--; g[a].pb(b); g[b].pb(a); } for(int i = 0;i<n;i++) { multiset<pll> ms; vector<bool> vis(n); ms.insert(mkp(0,i)); long long sum = 0; bool check=1; while(ms.size()) { int at = (*ms.begin()).second; ms.erase(ms.begin()); if(vis[at])continue; vis[at]=1; if(sum == 0) { sum+=s[at]; } else if(sum < s[at])check=0; else sum+=s[at]; for(int to:g[at]) { ms.insert(mkp(s[to], to)); } } cout<<check; } cout<<"\n"; } int main () { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t = 1; while(t--) { solve(); } return 0; }
#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...