Submission #984332

#TimeUsernameProblemLanguageResultExecution timeMemory
984332IUA_HasinCyberland (APIO23_cyberland)C++17
8 / 100
28 ms19860 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 N = 3e5+5; const ll INF = 1e16+10; vector<pair<ll, ll>> graph[N]; vector<ll> dist(N, INF); ll vis[N]; vector<ll> arr2; 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(arr2[v2]==0){ wt = 0; } if((dist[v]+wt)<(dist[v2])){ dist[v2] = dist[v]+wt; s.insert({dist[v2], v2}); } } vis[v] = 1; } } } void dfs(ll wt, ll source){ if(vis[source]==0){ vis[source] = 1; for(auto u : graph[source]){ ll v = u.first; ll v_dist = u.second; if(vis[v]==0){ if(arr2[v]==0){ dist[v] = 0; dfs(0, v); } else { dist[v] = wt+v_dist; dfs(wt+v_dist, v); } } } } } 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) { arr2.clear(); for(int i=0; i<=N; i++){ graph[i].clear(); vis[i] = 0; dist[i] = INF; } for(int i=0; i<N; i++){ ll a = arr[i]; arr2.push_back(a); } for(int i=0; i<x.size(); i++){ ll a = x[i]; ll b = y[i]; ll wt = c[i]; graph[a].push_back({b, wt}); graph[b].push_back({a, wt}); } dist[0] = 0; dfs(0, 0); ld ans = dist[H]; // for(int i=0; i<N; i++){ // cout << dist[i] << " "; // } // cout<<endl; return ans; }

Compilation message (stderr)

cyberland.cpp: In function 'void dijkstra(long long int)':
cyberland.cpp:28:12: warning: unused variable 'v_dist' [-Wunused-variable]
   28 |         ll v_dist = node.first;
      |            ^~~~~~
cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:80:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   80 |     for(int i=0; i<x.size(); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...