# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
468334 | 2021-08-27T16:19:47 Z | jazzup | 꿈 (IOI13_dreaming) | C++17 | 88 ms | 17484 KB |
#include "dreaming.h" #include <queue> #include <vector> #include <utility> #include <algorithm> #include <cmath> using namespace std; long long dis1[100010],dis2[100010]; bool visited[100010]; vector<pair<long long,long long> > v[100010],pb; vector<long long> pa,nl,len; queue<long long> q; void dfs(pair<long long,long long> n){ visited[n.first]=true; nl.push_back(n.first); if(dis2[n.first]==n.second){ double targ=n.second/2.0; double dd=targ; long long pu; for(long long i=0;i<nl.size();i++){ double diff=abs((double)dis2[nl[i]]-targ); if(diff<=dd){ dd=diff; pu=max(dis2[nl[i]],n.second-dis2[nl[i]]); } } len.push_back(pu); } for(long long i=0;i<v[n.first].size();i++){ if(!visited[v[n.first][i].first]){ dis2[v[n.first][i].first]=dis2[n.first]+v[n.first][i].second; dfs(make_pair(v[n.first][i].first,n.second)); } } nl.pop_back(); } int travelTime(int n, int m, int l, int a[], int b[], int t[]){ for(long long i=0;i<n;i++){ dis1[i]=-1; } for(long long i=0;i<m;i++){ v[a[i]].push_back(make_pair(b[i],t[i])); v[b[i]].push_back(make_pair(a[i],t[i])); } for(long long i=0;i<n;i++){ if(dis1[i]==-1){ dis1[i]=0; q.push(i); visited[i]=true; long long mxd=0,nd=i; while(!q.empty()){ long long cur=q.front(); if(dis1[cur]>mxd){ mxd=dis1[cur]; nd=cur; } q.pop(); for(long long i=0;i<v[cur].size();i++){ if(!visited[v[cur][i].first]){ q.push(v[cur][i].first); dis1[v[cur][i].first]=dis1[cur]+v[cur][i].second; visited[v[cur][i].first]=true; } } } pa.push_back(nd); } } for(long long i=0;i<n;i++){ dis1[i]=-1; visited[i]=false; } for(long long i=0;i<pa.size();i++){ dis1[pa[i]]=0; q.push(pa[i]); visited[pa[i]]=true; long long mxd=0,nd=i; while(!q.empty()){ long long cur=q.front(); if(dis1[cur]>mxd){ mxd=dis1[cur]; nd=cur; } q.pop(); for(long long i=0;i<v[cur].size();i++){ if(!visited[v[cur][i].first]){ q.push(v[cur][i].first); dis1[v[cur][i].first]=dis1[cur]+v[cur][i].second; visited[v[cur][i].first]=true; } } } pb.push_back(make_pair(nd,mxd)); } for(long long i=0;i<n;i++){ dis2[i]=-1; visited[i]=false; } for(long long i=0;i<pb.size();i++){ dis2[pb[i].first]=0; dfs(pb[i]); } sort(len.begin(),len.end()); long long ml=-1; for(long long i=0;i<n;i++){ if(dis2[i]>ml){ ml=dis2[i]; } } long long yo=len.size(); long long ans=-1; if(yo>=3){ ans=max(len[yo-1]+len[yo-2]+l,len[yo-3]+len[yo-2]+2*l); } else if(yo==2){ ans=len[yo-1]+len[yo-2]+l; } ans=max(ans,ml); return (int)ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 61 ms | 17464 KB | Output is correct |
2 | Correct | 69 ms | 17484 KB | Output is correct |
3 | Correct | 39 ms | 12412 KB | Output is correct |
4 | Correct | 10 ms | 4940 KB | Output is correct |
5 | Correct | 8 ms | 3916 KB | Output is correct |
6 | Correct | 16 ms | 6128 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 31 ms | 8036 KB | Output is correct |
9 | Correct | 38 ms | 10220 KB | Output is correct |
10 | Correct | 2 ms | 2764 KB | Output is correct |
11 | Correct | 88 ms | 12380 KB | Output is correct |
12 | Correct | 81 ms | 15260 KB | Output is correct |
13 | Correct | 2 ms | 2764 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2636 KB | Output is correct |
2 | Correct | 2 ms | 2636 KB | Output is correct |
3 | Correct | 2 ms | 2636 KB | Output is correct |
4 | Correct | 2 ms | 2636 KB | Output is correct |
5 | Correct | 1 ms | 2636 KB | Output is correct |
6 | Correct | 2 ms | 2672 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 2 ms | 2636 KB | Output is correct |
9 | Correct | 2 ms | 2636 KB | Output is correct |
10 | Correct | 2 ms | 2672 KB | Output is correct |
11 | Correct | 2 ms | 2636 KB | Output is correct |
12 | Correct | 2 ms | 2636 KB | Output is correct |
13 | Correct | 2 ms | 2636 KB | Output is correct |
14 | Correct | 2 ms | 2636 KB | Output is correct |
15 | Correct | 2 ms | 2636 KB | Output is correct |
16 | Correct | 2 ms | 2636 KB | Output is correct |
17 | Correct | 2 ms | 2636 KB | Output is correct |
18 | Correct | 2 ms | 2636 KB | Output is correct |
19 | Correct | 2 ms | 2636 KB | Output is correct |
20 | Correct | 2 ms | 2636 KB | Output is correct |
21 | Incorrect | 2 ms | 2636 KB | Output isn't correct |
22 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 61 ms | 17464 KB | Output is correct |
2 | Correct | 69 ms | 17484 KB | Output is correct |
3 | Correct | 39 ms | 12412 KB | Output is correct |
4 | Correct | 10 ms | 4940 KB | Output is correct |
5 | Correct | 8 ms | 3916 KB | Output is correct |
6 | Correct | 16 ms | 6128 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 31 ms | 8036 KB | Output is correct |
9 | Correct | 38 ms | 10220 KB | Output is correct |
10 | Correct | 2 ms | 2764 KB | Output is correct |
11 | Correct | 88 ms | 12380 KB | Output is correct |
12 | Correct | 81 ms | 15260 KB | Output is correct |
13 | Correct | 2 ms | 2764 KB | Output is correct |
14 | Correct | 2 ms | 2636 KB | Output is correct |
15 | Correct | 2 ms | 2636 KB | Output is correct |
16 | Correct | 2 ms | 2636 KB | Output is correct |
17 | Correct | 2 ms | 2636 KB | Output is correct |
18 | Correct | 1 ms | 2636 KB | Output is correct |
19 | Correct | 2 ms | 2672 KB | Output is correct |
20 | Correct | 2 ms | 2636 KB | Output is correct |
21 | Correct | 2 ms | 2636 KB | Output is correct |
22 | Correct | 2 ms | 2636 KB | Output is correct |
23 | Correct | 2 ms | 2672 KB | Output is correct |
24 | Correct | 2 ms | 2636 KB | Output is correct |
25 | Correct | 2 ms | 2636 KB | Output is correct |
26 | Correct | 2 ms | 2636 KB | Output is correct |
27 | Correct | 2 ms | 2636 KB | Output is correct |
28 | Correct | 2 ms | 2636 KB | Output is correct |
29 | Correct | 2 ms | 2636 KB | Output is correct |
30 | Correct | 2 ms | 2636 KB | Output is correct |
31 | Correct | 2 ms | 2636 KB | Output is correct |
32 | Correct | 2 ms | 2636 KB | Output is correct |
33 | Correct | 2 ms | 2636 KB | Output is correct |
34 | Incorrect | 2 ms | 2636 KB | Output isn't correct |
35 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 8940 KB | Output is correct |
2 | Correct | 36 ms | 8920 KB | Output is correct |
3 | Correct | 36 ms | 8972 KB | Output is correct |
4 | Correct | 35 ms | 8912 KB | Output is correct |
5 | Correct | 40 ms | 8884 KB | Output is correct |
6 | Correct | 50 ms | 9792 KB | Output is correct |
7 | Correct | 49 ms | 9252 KB | Output is correct |
8 | Correct | 34 ms | 8956 KB | Output is correct |
9 | Correct | 32 ms | 8804 KB | Output is correct |
10 | Correct | 35 ms | 9144 KB | Output is correct |
11 | Correct | 2 ms | 2636 KB | Output is correct |
12 | Correct | 14 ms | 8372 KB | Output is correct |
13 | Correct | 12 ms | 8512 KB | Output is correct |
14 | Correct | 12 ms | 8488 KB | Output is correct |
15 | Correct | 12 ms | 8380 KB | Output is correct |
16 | Correct | 12 ms | 8392 KB | Output is correct |
17 | Correct | 12 ms | 8480 KB | Output is correct |
18 | Correct | 15 ms | 8432 KB | Output is correct |
19 | Correct | 12 ms | 8568 KB | Output is correct |
20 | Correct | 2 ms | 2688 KB | Output is correct |
21 | Correct | 2 ms | 2636 KB | Output is correct |
22 | Correct | 2 ms | 2764 KB | Output is correct |
23 | Correct | 13 ms | 8380 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 2636 KB | Output is correct |
2 | Correct | 2 ms | 2636 KB | Output is correct |
3 | Correct | 2 ms | 2636 KB | Output is correct |
4 | Correct | 2 ms | 2636 KB | Output is correct |
5 | Correct | 1 ms | 2636 KB | Output is correct |
6 | Correct | 2 ms | 2672 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 2 ms | 2636 KB | Output is correct |
9 | Correct | 2 ms | 2636 KB | Output is correct |
10 | Correct | 2 ms | 2672 KB | Output is correct |
11 | Correct | 2 ms | 2636 KB | Output is correct |
12 | Correct | 2 ms | 2636 KB | Output is correct |
13 | Correct | 2 ms | 2636 KB | Output is correct |
14 | Correct | 2 ms | 2636 KB | Output is correct |
15 | Correct | 2 ms | 2636 KB | Output is correct |
16 | Correct | 2 ms | 2636 KB | Output is correct |
17 | Correct | 2 ms | 2636 KB | Output is correct |
18 | Correct | 2 ms | 2636 KB | Output is correct |
19 | Correct | 2 ms | 2636 KB | Output is correct |
20 | Correct | 2 ms | 2636 KB | Output is correct |
21 | Incorrect | 2 ms | 2636 KB | Output isn't correct |
22 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 61 ms | 17464 KB | Output is correct |
2 | Correct | 69 ms | 17484 KB | Output is correct |
3 | Correct | 39 ms | 12412 KB | Output is correct |
4 | Correct | 10 ms | 4940 KB | Output is correct |
5 | Correct | 8 ms | 3916 KB | Output is correct |
6 | Correct | 16 ms | 6128 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 31 ms | 8036 KB | Output is correct |
9 | Correct | 38 ms | 10220 KB | Output is correct |
10 | Correct | 2 ms | 2764 KB | Output is correct |
11 | Correct | 88 ms | 12380 KB | Output is correct |
12 | Correct | 81 ms | 15260 KB | Output is correct |
13 | Correct | 2 ms | 2764 KB | Output is correct |
14 | Correct | 2 ms | 2636 KB | Output is correct |
15 | Correct | 2 ms | 2636 KB | Output is correct |
16 | Correct | 2 ms | 2636 KB | Output is correct |
17 | Correct | 2 ms | 2636 KB | Output is correct |
18 | Correct | 1 ms | 2636 KB | Output is correct |
19 | Correct | 2 ms | 2672 KB | Output is correct |
20 | Correct | 2 ms | 2636 KB | Output is correct |
21 | Correct | 2 ms | 2636 KB | Output is correct |
22 | Correct | 2 ms | 2636 KB | Output is correct |
23 | Correct | 2 ms | 2672 KB | Output is correct |
24 | Correct | 2 ms | 2636 KB | Output is correct |
25 | Correct | 2 ms | 2636 KB | Output is correct |
26 | Correct | 2 ms | 2636 KB | Output is correct |
27 | Correct | 2 ms | 2636 KB | Output is correct |
28 | Correct | 2 ms | 2636 KB | Output is correct |
29 | Correct | 2 ms | 2636 KB | Output is correct |
30 | Correct | 2 ms | 2636 KB | Output is correct |
31 | Correct | 2 ms | 2636 KB | Output is correct |
32 | Correct | 2 ms | 2636 KB | Output is correct |
33 | Correct | 2 ms | 2636 KB | Output is correct |
34 | Incorrect | 2 ms | 2636 KB | Output isn't correct |
35 | Halted | 0 ms | 0 KB | - |