| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1369849 | luka2881 | 꿈 (IOI13_dreaming) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
#include "dreaming.h"
using namespace std;
int posecen[100005];
vector<vector<int>>a(100005);
map<pair<int,int>,int>mapa;
int val[100005];
static void dfs(int k,int &maxd,int &d,int dubina,vector<int>&pom)
{
posecen[k]=true;
if(dubina>maxd)
{
maxd=dubina;
d=k;
}
pom.push_back(k);
for(int i=0;i<a[k].size();i++)
{
if(!posecen[a[k][i]])
{
dfs(a[k][i],maxd,d,dubina+mapa[make_pair(k,a[k][i])],pom);
}
}
}
static void nadjiprecnik(int k,int t,vector<int>&precnik,bool &nadjen)
{
posecen[k]=true;
if(k==t)
{
precnik.push_back(t);
nadjen=true;
return;
}
for(int i=0;i<a[k].size();i++)
{
if(!posecen[a[k][i]])
{
nadjiprecnik(a[k][i],t,precnik,nadjen);
if(nadjen)
{
precnik.push_back(k);
return;
}
}
}
}