Submission #714739

#TimeUsernameProblemLanguageResultExecution timeMemory
714739Ferid20072020Stranded Far From Home (BOI22_island)C++14
0 / 100
198 ms31680 KiB
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx,avx2,fma") #include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define ld long double #define ui unsigned int #define f first #define s second #define ins insert #define pb push_back #define mp make_pair #define ln '\n' #define int ll #define pii pair<int , int> #define INF LLONG_MAX #define vv(a) vector<a> #define pp(a, b) pair<a, b> #define pq(a) priority_queue<a> #define qq(a) queue<a> #define ss(a) set<a> #define mss(a) multiset<a> #define mm(a, b) map<a, b> #define mmm(a , b) multimap<a , b> #define sz(x) (x).size() #define all(x) (x).begin() , (x).end() #define fastio \ ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const int MAX = 2e5 + 3; int n , m; int tot[MAX]; vv(vv(int)) g(MAX); vv(int) level(MAX); vv(int) pref(MAX); vv(int) parent(MAX); void DFS(int src , int lvl){ level[src] = lvl; for(auto to : g[src]){ if(to > src){ parent[to] = src; DFS(to , lvl+1); } } } void solve(){ cin >> n >> m; for(int i=1 ; i<=n ; i++){ cin >> tot[i]; pref[i] = tot[i]; } for(int i=0 ; i<m ; i++){ int u , v; cin >> u >> v; g[u].pb(v); g[v].pb(u); } DFS(1 , 1); vv(pii) Sort; for(int i=1 ; i<=n ; i++){ Sort.pb({level[i] , i}); } sort(all(Sort)); reverse(all(Sort)); for(int i=0 ; i<Sort.size() ; i++){ pref[parent[Sort[i].s]] += pref[Sort[i].s]; } reverse(all(Sort)); for(int i=0 ; i<Sort.size() ; i++){ if(tot[parent[Sort[i].s]] <= pref[Sort[i].s]){ pref[Sort[i].s] += tot[parent[Sort[i].s]]; } } vv(int) ans(n+3 , 0); ans[1] = 1; int node = 1; for(int i=2 ; i<=n ; i++){ if(pref[i] >= tot[1]){ ans[i] = 1; } } for(int i=1 ; i<=n ; i++){ cout << ans[i]; } } signed main(){ fastio int t = 1; //cin >> t; while(t--){ solve(); } return 0; }

Compilation message (stderr)

island.cpp: In function 'void solve()':
island.cpp:76:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |     for(int i=0 ; i<Sort.size() ; i++){
      |                   ~^~~~~~~~~~~~
island.cpp:80:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |     for(int i=0 ; i<Sort.size() ; i++){
      |                   ~^~~~~~~~~~~~
island.cpp:87:9: warning: unused variable 'node' [-Wunused-variable]
   87 |     int node = 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...