Submission #984848

#TimeUsernameProblemLanguageResultExecution timeMemory
984848IUA_HasinCyberland (APIO23_cyberland)C++17
0 / 100
26 ms24152 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) { for(int i=0; i<=N; i++){ extra[i].clear(); graph[i].clear(); dist[i] = INF; vis[i] = 0; } ind0.clear(); for(int i=0; i<x.size(); i++){ ll a = x[i]; ll b = y[i]; ll wt = c[i]; if(a!=H && b!=H){ graph[a].push_back({b, wt}); graph[b].push_back({a, wt}); } else { extra[a].push_back({b, wt}); extra[b].push_back({a, wt}); } } for(int i=0; i<arr.size(); i++){ if(arr[i]==0){ ind0.push_back(i); } } dijkstra(0); vector<ll> possibleind0; for(int i=0; i<ind0.size(); i++){ ll a = ind0[i]; if(dist[a]!=INF){ possibleind0.push_back(a); } } for(int i=0; i<=N; i++){ for(int j=0; j<extra[i].size(); j++){ graph[i].push_back(extra[i][j]); } } for(int i=0; i<=N; i++){ graph[i].clear(); dist[i] = INF; vis[i] = 0; } dijkstra(0); ll ans = dist[H]; if(dist[H]==INF){ return -1; } else { for(int i=0; i<=N; i++){ graph[i].clear(); dist[i] = INF; vis[i] = 0; } dijkstra(H); //ans = INF; for(int i=0; i<possibleind0.size(); i++){ ll a = ind0[i]; ll temp = dist[a]; ans = min(temp, ans); } 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;
      |            ^~~~~~
cyberland.cpp: In function 'double solve(int, int, int, int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
cyberland.cpp:56:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |     for(int i=0; i<x.size(); i++){
      |                  ~^~~~~~~~~
cyberland.cpp:69:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |     for(int i=0; i<arr.size(); i++){
      |                  ~^~~~~~~~~~~
cyberland.cpp:77:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |     for(int i=0; i<ind0.size(); i++){
      |                  ~^~~~~~~~~~~~
cyberland.cpp:85:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |         for(int j=0; j<extra[i].size(); j++){
      |                      ~^~~~~~~~~~~~~~~~
cyberland.cpp:108:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  108 |         for(int i=0; i<possibleind0.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...