제출 #935049

#제출 시각아이디문제언어결과실행 시간메모리
935049anton꿈 (IOI13_dreaming)C++17
0 / 100
29 ms10064 KiB
#include "dreaming.h" #include<bits/stdc++.h> using namespace std; #define pii pair<int, int> struct Tree{ vector<vector<pii>> adj; vector<int> longest; int min_len = 1e9; int diameter= 0; }; vector<vector<pii>> adj; vector<bool> vis; vector<Tree> forest; Tree sTree; void get_tree(int id, int anc){ //cout<<id<<endl; vis[id] = true; int tree_id = sTree.adj.size(); sTree.adj.push_back(vector<pii>(0)); for(auto e: adj[id]){ if(e.first!=anc){ int future_id = sTree.adj.size(); get_tree(e.first, id); sTree.adj[tree_id].push_back(pii(future_id, e.second)); sTree.adj[future_id].push_back(pii(tree_id, e.second)); } } //cout<<id<<" done "<<endl; } pii get_len(int id, int anc, Tree& tr){ vector<int> ch; ch.push_back(0); ch.push_back(0); int max_diam = 0; for(auto e: tr.adj[id]){ if(e.first!=anc){ pii ch_ans = get_len(e.first, id, tr); ch.push_back(ch_ans.first+1); max_diam = max(max_diam, ch_ans.second); } } sort(ch.begin(), ch.end()); return pii(ch[ch.size()-1], max(max_diam, ch[ch.size()-1]+ch[ch.size()-2])); } signed travelTime(signed N,signed M, signed L,signed A[], signed B[], signed T[]) { adj.resize(N); vis.resize(N, false); for(int i =0; i<M; i++){ adj[A[i]-1].push_back(pii(B[i]-1, T[i])); adj[B[i]-1].push_back(pii(A[i]-1, T[i])); } /*for(int i = 0; i<N; i++){ if(!vis[i]){ //cerr<<i<<endl; sTree.adj.clear(); get_tree(i, -1); forest.push_back(sTree); } } for(int j = 0; j<forest.size(); j++){ forest[j].longest.resize(forest[j].adj.size()); for(int i = 0; i<forest[j].adj.size(); i++){ pii d = get_len(i, -1, forest[j]); //pii d = {100, 100}; forest[j].longest[i] =d.first; forest[j].diameter = d.second; forest[j].min_len= min(forest[j].min_len, forest[j].longest[i]); } } if(forest.size()==1){ return forest[0].diameter; } return max(forest[0].min_len + forest[1].min_len + L, max(forest[0].diameter, forest[1].diameter));*/ return 42; }
#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...