답안 #893066

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
893066 2023-12-26T13:05:41 Z raul2008487 꿈 (IOI13_dreaming) C++17
컴파일 오류
0 ms 0 KB
#include<bits/stdc++.h>
#include "dreaming.h"
#define ll long long
#define pll pair<ll,ll>
#define vl vector<ll>
#define in insert
#define all(v) v.begin(),v.end()
const int sz = 1e5+5;
const ll inf = 1000000000000000;
using namespace std;
vector<pair<ll,ll>> adj[sz];
ll dis[sz][2], center, v1, v2, cnt = -1;
bool used[sz];
vector<vector<ll>> path;
void trav(ll node){
    used[node] = 1;
    path[cnt].pb(node);
    for(pll edge: adj[node]){
        if(!used[edge.fi]){
            dfs(egde.fi);
        }
    }
}
void dfs(ll node, ll we, ll p){
    if(we > mx){
        v2 = node;
        mx = we;
    }
    for(pll edge: adj[node]){
        if(edge.fi != p){
            dfs(edge.fi, we + edge.se, node);
        }
    }
}
void caldis(ll node, ll we, ll p, ll type){
    dis[node][type] = we;
    for(pll edge: adj[node]){
        if(edge.fi != p){
            dfs(edge.fi);
        }
    }
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
    ll n = N, m = M, i, j, mx, ans = 0;
    for(i=1;i<=m;i++){
        adj[A[i]].pb({B[i], T[i]});
        adj[B[i]].pb({A[i], T[i]});
    }
    for(i=0;i<n;i++){
        if(!used[i]){
            cnt++;
            path.pb(vl(0));
            trav(i);
        }
    }
    array<ll, 3> bp = {-1, -1, -1};
    for(i=0;i<c;i++){
        mx = -1, v1 = -1, v2 = -1;
        dfs(path[i][0], 0, -1);
        v1 = v2;
        mx = -1;
        dfs(v1);
        caldis(v1, 0, -1, 0);caldis(v2, 0, -1, 1);
        ll pc = path[i][0], pb = max(dis[pc][0], dis[pc][1]);
        for(auto x: path[i]){
            if(max(dis[x][0], dis[x][1]) > pb){
                pc = x;
                pb = max(dis[x][0], dis[x][1]);
            }
        }
        ans = max(ans, pb);
        if(pb > bp[0]){
            bp[2] = bp[1];
            bp[1] = bp[0];
            bp[0] = pb;
        }
        else if(pb > bp[1]){
            bp[2] = bp[1];
            bp[1] = pb;
        }
        else if(pb > bp[2]){
            bp[2] = pb;
        }
    }
    ans = max(ans, bp[0] + bp[1] + L);
    if(bp[3] != -1){
        ans = max(ans, bp[1] + bp[2] + 2*L);
    }
    return ans;

}

Compilation message

dreaming.cpp: In function 'void trav(long long int)':
dreaming.cpp:17:15: error: '__gnu_cxx::__alloc_traits<std::allocator<std::vector<long long int> >, std::vector<long long int> >::value_type' {aka 'class std::vector<long long int>'} has no member named 'pb'
   17 |     path[cnt].pb(node);
      |               ^~
dreaming.cpp:19:23: error: 'struct std::pair<long long int, long long int>' has no member named 'fi'
   19 |         if(!used[edge.fi]){
      |                       ^~
dreaming.cpp:20:17: error: 'egde' was not declared in this scope; did you mean 'edge'?
   20 |             dfs(egde.fi);
      |                 ^~~~
      |                 edge
dreaming.cpp:20:13: error: 'dfs' was not declared in this scope; did you mean 'dis'?
   20 |             dfs(egde.fi);
      |             ^~~
      |             dis
dreaming.cpp: In function 'void dfs(long long int, long long int, long long int)':
dreaming.cpp:25:13: error: 'mx' was not declared in this scope
   25 |     if(we > mx){
      |             ^~
dreaming.cpp:30:17: error: 'struct std::pair<long long int, long long int>' has no member named 'fi'
   30 |         if(edge.fi != p){
      |                 ^~
dreaming.cpp:31:22: error: 'struct std::pair<long long int, long long int>' has no member named 'fi'
   31 |             dfs(edge.fi, we + edge.se, node);
      |                      ^~
dreaming.cpp:31:36: error: 'struct std::pair<long long int, long long int>' has no member named 'se'
   31 |             dfs(edge.fi, we + edge.se, node);
      |                                    ^~
dreaming.cpp: In function 'void caldis(long long int, long long int, long long int, long long int)':
dreaming.cpp:38:17: error: 'struct std::pair<long long int, long long int>' has no member named 'fi'
   38 |         if(edge.fi != p){
      |                 ^~
dreaming.cpp:39:22: error: 'struct std::pair<long long int, long long int>' has no member named 'fi'
   39 |             dfs(edge.fi);
      |                      ^~
dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:46:19: error: 'class std::vector<std::pair<long long int, long long int> >' has no member named 'pb'
   46 |         adj[A[i]].pb({B[i], T[i]});
      |                   ^~
dreaming.cpp:47:19: error: 'class std::vector<std::pair<long long int, long long int> >' has no member named 'pb'
   47 |         adj[B[i]].pb({A[i], T[i]});
      |                   ^~
dreaming.cpp:52:18: error: 'class std::vector<std::vector<long long int> >' has no member named 'pb'
   52 |             path.pb(vl(0));
      |                  ^~
dreaming.cpp:57:15: error: 'c' was not declared in this scope
   57 |     for(i=0;i<c;i++){
      |               ^
dreaming.cpp:62:15: error: too few arguments to function 'void dfs(long long int, long long int, long long int)'
   62 |         dfs(v1);
      |               ^
dreaming.cpp:24:6: note: declared here
   24 | void dfs(ll node, ll we, ll p){
      |      ^~~
dreaming.cpp:44:25: warning: unused variable 'j' [-Wunused-variable]
   44 |     ll n = N, m = M, i, j, mx, ans = 0;
      |                         ^