답안 #1078931

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1078931 2024-08-28T08:19:58 Z AndreasK 꿈 (IOI13_dreaming) C++14
0 / 100
40 ms 18072 KB
#include <bits/stdc++.h>
#include "dreaming.h"
using namespace std;

#define designed ios_base::sync_with_stdio(0);
#define by cin.tie(0);
#define AndreasK cout.tie(0);
//#define int long long
#define ii pair <int,int>
#define vi vector <int>
#define iii pair <int,ii>
#define vii vector <ii>
#define vc vector <char>
#define vb vector <bool>

vector <vii> g;
map <int,int> m;
vi v;
map <int,int> mn;

void dfs(int curr,int prev,int dist,int st){
v[curr]=st;
m[st]=max(m[st],dist);
for (auto nxt:g[curr]){
    if (nxt.first!=prev)
        dfs(nxt.first,curr,nxt.second+dist,st);
}
}

void dfs2(int curr,int prev,int dist,int st){
v[curr]=st;
mn[st]=min(mn[st],max(m[st]-dist,dist));
for (auto nxt:g[curr]){
    if (nxt.first!=prev)
        dfs2(nxt.first,curr,nxt.second+dist,st);
}
}

int travelTime(int N,int M,int L,int A[],int B[],int T[]){
g.assign(N,vii());
for (int c=0;c<M;c++){
    g[A[c]].push_back({B[c],T[c]});
    g[B[c]].push_back({A[c],T[c]});
}
m.clear();
int st=0;
v.assign(N,0);
for (int c=0;c<N;c++){
    if (v[c]==0 && g[c].size()==1){
        st++;
        dfs(c,c,0,st);
    }
}
mn.clear();
mn[1]=m[1];
mn[2]=m[2];
st=0;
v.assign(N,0);
for (int c=0;c<N;c++){
    if (v[c]==0 && g[c].size()==1){
        st++;
        dfs2(c,c,0,st);
    }
}
return mn[1]+mn[2]+L;
}

# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 18072 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 18072 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 40 ms 8484 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 32 ms 18072 KB Output isn't correct
2 Halted 0 ms 0 KB -