Submission #981968

#TimeUsernameProblemLanguageResultExecution timeMemory
981968vjudge1Cyberland (APIO23_cyberland)C++17
8 / 100
1211 ms2097152 KiB
#include <bits/stdc++.h> #define endl '\n' #define mp make_pair #define pb push_back #define f first #define s second #define fo(i,n) for(auto i =0 ; i < n;i++) #define fore(i,l,r) for(auto i = l; i < r;i++) #define forex(i,r,l) for(auto i = r; i >= l; i--) #define ffo(i,n) forex(i,n-1,0) #define all(x) x.begin(),x.end() #define lsb(x) x&(-x) #define sz(x) (int)x.size() #define gcd(a,b) __gcd(a,b) #define vii vector<ii> using namespace std; using ll = long long; using ull = unsigned long long; using vi = vector<int>;using ii = pair<int,int>;using mii = map<int,int>; #pragma GCC target ("avx2") #pragma GCC optimization ("O3") #pragma GCC optimization ("unroll-loops") #define state pair<double, pair<int,int>> double solve(int N, int M, int K, int H, vi x, vi y, vi c, vi arr){ vector<vii> graph(N); fo(i,M){graph[x[i]].pb({y[i], c[i]});graph[y[i]].pb({x[i], c[i]});} vector<vector<double>> minDist(N+1, vector<double>(K+1,1e18)); vector<vector<bool>> vis(N+1, vector<bool>(K+1,0)); priority_queue<state, vector<state>, greater<state>> pq; pq.push({0, {0, 0}}); while(!pq.empty()){ auto act = pq.top(); pq.pop(); if(vis[act.s.s][act.s.f])continue; // cout << act.s.s << " " << act.f << " " << act.s.f << endl; vis[act.s.s][act.s.f] = 1; for(auto [v,cost] : graph[act.s.s]){ double newcost = (double)act.f + (double)cost; // no hacer nada if(newcost < minDist[v][act.s.f]){ minDist[v][act.s.f] = newcost; pq.push({newcost, {act.s.f, v}}); } // usar el cupon if(arr[v] == 2 and act.s.f + 1 <= K){ double othercost = newcost/(double)2; if(othercost < minDist[v][act.s.f+1]){ minDist[v][act.s.f+1] = othercost; pq.push({othercost, {act.s.f+1, v}}); } } // if(v==1)assert(arr[v]==0); if(arr[v] == 0){ if(0<minDist[v][act.s.f]){ minDist[v][act.s.f] = 0; pq.push({0, {act.s.f, v}}); } } } } double ans = 1e18; fo(i,K+1)ans=min(ans,minDist[H][i]); return ans; }

Compilation message (stderr)

cyberland.cpp:20: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
   20 | #pragma GCC optimization ("O3")
      | 
cyberland.cpp:21: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
   21 | #pragma GCC optimization ("unroll-loops")
      |
#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...