Submission #1240997

#TimeUsernameProblemLanguageResultExecution timeMemory
1240997pcpCrocodile's Underground City (IOI11_crocodile)C++20
46 / 100
2 ms3400 KiB
#include "crocodile.h" #include <iostream> #include <cstring> #include <vector> #include <queue> // /usr/bin/g++ -DEVAL -std=gnu++20 -O2 -pipe -static -s -o crocodile grader.cpp crocodile.cpp using namespace std; const int NN=100010; vector<pair<int,int>> connections[NN]; bool gud[NN]; bool visited[NN]; int tumama[NN]; int bfs(int node){ if (!visited[node]){ visited[node]=true; priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> kiwi; for (auto it : connections[node]){ if (!visited[it.first]){ int rslt = bfs(it.first); if (gud[it.first]){ kiwi.push({it.second+rslt,it.first}); } }else if (tumama[it.first]!=-1){ pair<int,int> eso={-1,-1};eso.first=tumama[it.first]+it.second;eso.second=it.first; kiwi.push(eso); } } if (kiwi.size()>=2)gud[node]=true; else return 0; kiwi.pop(); tumama[node]=kiwi.top().first; return kiwi.top().first; }return 0; } int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) { memset(visited, 0, sizeof visited); memset(gud, 0, sizeof gud); memset(tumama, -1, sizeof tumama); for (int i = 0; i < M;++i){ connections[R[i][0]].push_back({R[i][1],L[i]}); connections[R[i][1]].push_back({R[i][0],L[i]}); } for (int i = 0;i<K;++i)gud[P[i]]=true; return bfs(0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...