Submission #714766

#TimeUsernameProblemLanguageResultExecution timeMemory
714766Ferid20072020Stranded Far From Home (BOI22_island)C++14
0 / 100
177 ms31664 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(){ int Max = -1e9; cin >> n >> m; for(int i=1 ; i<=n ; i++){ cin >> tot[i]; Max = max(Max , 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] += pref[parent[Sort[i].s]]; } } //for(int i=1 ; i<=n ; i++){ // cout << pref[i] << ln; //} vv(int) ans(n+3 , 0); ans[1] = 1; int node = 1; for(int i=2 ; i<=n ; i++){ if(pref[i] >= Max){ 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:78: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]
   78 |     for(int i=0 ; i<Sort.size() ; i++){
      |                   ~^~~~~~~~~~~~
island.cpp:82: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]
   82 |     for(int i=0 ; i<Sort.size() ; i++){
      |                   ~^~~~~~~~~~~~
island.cpp:92:9: warning: unused variable 'node' [-Wunused-variable]
   92 |     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...