Submission #305759

#TimeUsernameProblemLanguageResultExecution timeMemory
305759sofapudenDreaming (IOI13_dreaming)C++14
18 / 100
72 ms14584 KiB
#include "dreaming.h" #include <bits/stdc++.h> using namespace std; vector<vector<pair<int,int>>> gri; vector<int> dis; vector<int> dep; vector<int> used; int jic = 0; int ans = 0; int dfs2(int x, int p, int d){ used[x] = 1; int bes = 0; int bes2 = 0; for(int i = 0; i < gri[x].size(); ++i){ if(gri[x][i].first == p)continue; int cur = dfs2(gri[x][i].first, x, d+gri[x][i].second); if(bes < cur)swap(cur, bes); if(bes2 < cur)swap(cur, bes2); } ans = max(ans, max(bes+bes2, d)); dep.push_back(max(bes,d)); return max(d, bes); } void find(int ind){ if(!gri[ind].size()){dis.push_back(0);return;} dep.clear(); ans = 0; dfs2(ind,ind,0); jic = max(jic,ans); sort(dep.begin(),dep.end()); dis.push_back(dep[0]); } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { if(N == 1)return 0; if(N == 2)return (M ? T[0] : L); used.resize(N,0); gri.resize(N); for(int i = 0; i < M; ++i){ gri[A[i]].push_back({B[i],T[i]}); gri[B[i]].push_back({A[i],T[i]}); } for(int i = 0; i < N; ++i){ if(!used[i] && gri[i].size() <= 1){ find(i); } } sort(dis.rbegin(),dis.rend()); if(dis.size() >= 3){ return max(jic,max(dis[0]+L+dis[1],dis[1]+dis[2]+2*L)); } if(dis.size() == 2){ return max(jic,dis[0]+L+dis[1]); } return jic; }

Compilation message (stderr)

dreaming.cpp: In function 'int dfs2(int, int, int)':
dreaming.cpp:16:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |  for(int i = 0; i < gri[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...