Submission #984955

#TimeUsernameProblemLanguageResultExecution timeMemory
984955IUA_HasinCyberland (APIO23_cyberland)C++17
0 / 100
31 ms34140 KiB
#include "cyberland.h" #include <bits/stdc++.h> #define endl "\n" #define yeap cout<<"YES"<<endl #define nope cout<<"NO"<<endl #define ll long long #define ld long double using namespace std; const ll M = 3e5+5; const ll INF = 5e16+69; vector<ll> ind0; vector<pair<ll, ll>> extra[M]; vector<pair<ll, ll>> graph[M]; vector<ll> dist(M, INF); ll vis[M]; void dijkstra(ll source){ set<pair<ll, ll>> s; s.insert({0, source}); dist[source] = 0; while(s.size()>0){ auto node = *s.begin(); ll v = node.second; ll v_dist = node.first; s.erase(s.begin()); if(vis[v]==0){ for(auto child : graph[v]){ ll v2 = child.first; ll wt = child.second; if((dist[v]+wt)<(dist[v2])){ dist[v2] = dist[v]+wt; s.insert({dist[v2], v2}); } } vis[v] = 1; } } } double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { ll last0 = 0; ll last2 = -1; for(int i=1; i<H; i++){ if(arr[i]==0){ last0 = i; } if(arr[i]==2){ last2 = i; } } //cout << last0 << " " << last2 << endl; ll pref[N+1]; pref[0] = 0; for(int i=0; i<N; i++){ pref[i+1] = pref[i]+c[i]; } if(last2<last0){ ll ans = pref[H]-pref[last0]; //cout << pref[H+1] << " " << c[last0+1] << endl; return ans; } else { ld before = pref[last2]-pref[last0]; if(K>0){ before = before/2; } ll K2 = K-1; ll wt = c[last2-1]; while(K2--){ ld temp = (before+2*wt)/2; if(temp<before){ before = temp; } else { break; } } ld after = pref[H]-pref[last2+1]; ld ans = before+after; return ans; } }

Compilation message (stderr)

cyberland.cpp: In function 'void dijkstra(long long int)':
cyberland.cpp:30:12: warning: unused variable 'v_dist' [-Wunused-variable]
   30 |         ll v_dist = node.first;
      |            ^~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...