# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
468331 | 2021-08-27T16:11:51 Z | jazzup | 꿈 (IOI13_dreaming) | C++14 | 61 ms | 14912 KB |
#include "dreaming.h" #include <queue> #include <vector> #include <utility> #include <algorithm> #include <cmath> using namespace std; int dis1[100010],dis2[100010]; bool visited[100010]; vector<pair<int,int> > v[100010],pb; vector<int> pa,nl,len; queue<int> q; void dfs(pair<int,int> 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; int pu; for(int 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(int 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(int i=0;i<n;i++){ dis1[i]=-1; } for(int 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(int i=0;i<n;i++){ if(dis1[i]==-1){ dis1[i]=0; q.push(i); visited[i]=true; int mxd=0,nd=i; while(!q.empty()){ int cur=q.front(); if(dis1[cur]>mxd){ mxd=dis1[cur]; nd=cur; } q.pop(); for(int 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(int i=0;i<n;i++){ dis1[i]=-1; visited[i]=false; } for(int i=0;i<pa.size();i++){ dis1[pa[i]]=0; q.push(pa[i]); visited[pa[i]]=true; int mxd=0,nd=i; while(!q.empty()){ int cur=q.front(); if(dis1[cur]>mxd){ mxd=dis1[cur]; nd=cur; } q.pop(); for(int 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(int i=0;i<n;i++){ dis2[i]=-1; visited[i]=false; } for(int i=0;i<pb.size();i++){ dis2[pb[i].first]=0; dfs(pb[i]); } sort(len.begin(),len.end()); int ml=-1; for(int i=0;i<n;i++){ if(dis2[i]>ml){ ml=dis2[i]; } } int yo=len.size(); int 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 ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 60 ms | 14912 KB | Output is correct |
2 | Correct | 57 ms | 14904 KB | Output is correct |
3 | Correct | 38 ms | 10676 KB | Output is correct |
4 | Correct | 10 ms | 4428 KB | Output is correct |
5 | Correct | 8 ms | 3532 KB | Output is correct |
6 | Correct | 16 ms | 5448 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 28 ms | 6724 KB | Output is correct |
9 | Correct | 37 ms | 8644 KB | Output is correct |
10 | Correct | 2 ms | 2636 KB | Output is correct |
11 | Correct | 53 ms | 10220 KB | Output is correct |
12 | Correct | 61 ms | 12504 KB | Output is correct |
13 | Correct | 2 ms | 2636 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 | 2 ms | 2636 KB | Output is correct |
6 | Correct | 2 ms | 2636 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 | 2648 KB | Output is correct |
10 | Correct | 2 ms | 2636 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 | 2656 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 | 60 ms | 14912 KB | Output is correct |
2 | Correct | 57 ms | 14904 KB | Output is correct |
3 | Correct | 38 ms | 10676 KB | Output is correct |
4 | Correct | 10 ms | 4428 KB | Output is correct |
5 | Correct | 8 ms | 3532 KB | Output is correct |
6 | Correct | 16 ms | 5448 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 28 ms | 6724 KB | Output is correct |
9 | Correct | 37 ms | 8644 KB | Output is correct |
10 | Correct | 2 ms | 2636 KB | Output is correct |
11 | Correct | 53 ms | 10220 KB | Output is correct |
12 | Correct | 61 ms | 12504 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 | Correct | 2 ms | 2636 KB | Output is correct |
22 | Correct | 2 ms | 2648 KB | Output is correct |
23 | Correct | 2 ms | 2636 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 | 2656 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 | 39 ms | 7020 KB | Output is correct |
2 | Correct | 31 ms | 7052 KB | Output is correct |
3 | Correct | 32 ms | 6964 KB | Output is correct |
4 | Correct | 33 ms | 6948 KB | Output is correct |
5 | Correct | 30 ms | 7040 KB | Output is correct |
6 | Correct | 34 ms | 7520 KB | Output is correct |
7 | Correct | 33 ms | 7216 KB | Output is correct |
8 | Correct | 31 ms | 6916 KB | Output is correct |
9 | Correct | 30 ms | 6808 KB | Output is correct |
10 | Correct | 33 ms | 7100 KB | Output is correct |
11 | Correct | 2 ms | 2636 KB | Output is correct |
12 | Correct | 11 ms | 5584 KB | Output is correct |
13 | Correct | 11 ms | 5572 KB | Output is correct |
14 | Correct | 11 ms | 5636 KB | Output is correct |
15 | Correct | 11 ms | 5588 KB | Output is correct |
16 | Correct | 11 ms | 5612 KB | Output is correct |
17 | Correct | 11 ms | 5556 KB | Output is correct |
18 | Correct | 11 ms | 5664 KB | Output is correct |
19 | Correct | 11 ms | 5568 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 | 2764 KB | Output is correct |
23 | Correct | 11 ms | 5600 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 | 2 ms | 2636 KB | Output is correct |
6 | Correct | 2 ms | 2636 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 | 2648 KB | Output is correct |
10 | Correct | 2 ms | 2636 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 | 2656 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 | 60 ms | 14912 KB | Output is correct |
2 | Correct | 57 ms | 14904 KB | Output is correct |
3 | Correct | 38 ms | 10676 KB | Output is correct |
4 | Correct | 10 ms | 4428 KB | Output is correct |
5 | Correct | 8 ms | 3532 KB | Output is correct |
6 | Correct | 16 ms | 5448 KB | Output is correct |
7 | Correct | 2 ms | 2636 KB | Output is correct |
8 | Correct | 28 ms | 6724 KB | Output is correct |
9 | Correct | 37 ms | 8644 KB | Output is correct |
10 | Correct | 2 ms | 2636 KB | Output is correct |
11 | Correct | 53 ms | 10220 KB | Output is correct |
12 | Correct | 61 ms | 12504 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 | Correct | 2 ms | 2636 KB | Output is correct |
22 | Correct | 2 ms | 2648 KB | Output is correct |
23 | Correct | 2 ms | 2636 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 | 2656 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 | - |