제출 #1184609

#제출 시각아이디문제언어결과실행 시간메모리
1184609jcolada꿈 (IOI13_dreaming)C++20
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
#include "dreaming.h"
using namespace std;

const int big = 1e5+5;
int cnt = 0, color[big] = {0}, vex[big] = {0};
bool colvis[big] = {false};
vector<vector<pair<int,int>>> adj(big);
int bag, bigdeez;
int centers[big] = {0}, par[big], wt[big];

void coldfs(int x){
    if(colvis[x]) return;
    if(color[x] == 0){cnt++; color[x] = cnt; vex[cnt] = x;}
    colvis[x] = true;
    for(auto &y : adj[x]){
        if(colvis[x]) continue;
        color[y.first] = color[x];
        coldfs(y.first);
    }
}

int v; long long mx;

void dfs(int x, int p, int d){
    if(d > mx){mx = d; v = x;}
    for(auto &y : adj[x]){
        if(y.first == p) continue;
        dfs(y.first, x, d + y.second)
    }
}

void dfs2(int x, int p, int d){
    par[x] = p;
    wt[x] = 0;
    if(d > mx){mx = d; v = x;}
    for(auto &y : adj[x]){
        if(y.first == p) continue;
        wt[y.first] = y.second;
        dfs(y.first, x, d + y.second)
    }
}

int travelTime(int n, int m, int l, int a[], int b[], int t[]){
    long long btt = 0; int cc;
    for(int i = 0; i < m; i++){
        adj[a[i]].push_back(make_par(b[i],t[i]));
        adj[b[i]].push_back(make_pair(a[i],t[i]));
    }
    for (int i = 0; i < n; i++) {
        if (!colvis[i]) coldfs(i);
    }
    for(int i=1; i <= cnt; i++){
        int s = vex[i];
        mx = 0; dfs(s, -1, 0);
        mx = 0; dfs2(v, -1, 0);
        int k = v, ct = v;
        long long best = 0, curr = mx;
        while(k != -1){
            curr -= wt[k]; int wgt = min(curr, mx - curr);
            best = max(best, wgt);
            if(best == wgt){ct = k;}
            k = parent(k);
        }
        centers[i] = ct;
        if(best >= btt){btt = best; cc = ct;}
    }
    for(int i = 0; i < cnt; i++){
        if(centers[i] == cc) continue;
        adj[centers[i]].push_back(make_pair(cc, l));
        adj[cc].push_back({centers[i], l});
    }
    mx = 0; dfs(0,-1,0);
    mx = 0; dfs(v,-1,0);
    return mx;
}

컴파일 시 표준 에러 (stderr) 메시지

dreaming.cpp: In function 'void dfs(int, int, int)':
dreaming.cpp:29:38: error: expected ';' before '}' token
   29 |         dfs(y.first, x, d + y.second)
      |                                      ^
      |                                      ;
   30 |     }
      |     ~                                 
dreaming.cpp: In function 'void dfs2(int, int, int)':
dreaming.cpp:40:38: error: expected ';' before '}' token
   40 |         dfs(y.first, x, d + y.second)
      |                                      ^
      |                                      ;
   41 |     }
      |     ~                                 
dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:47:29: error: 'make_par' was not declared in this scope
   47 |         adj[a[i]].push_back(make_par(b[i],t[i]));
      |                             ^~~~~~~~
dreaming.cpp:61:23: error: no matching function for call to 'max(long long int&, int&)'
   61 |             best = max(best, wgt);
      |                    ~~~^~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from dreaming.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
dreaming.cpp:61:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   61 |             best = max(best, wgt);
      |                    ~~~^~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from dreaming.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
dreaming.cpp:61:23: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   61 |             best = max(best, wgt);
      |                    ~~~^~~~~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from dreaming.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
dreaming.cpp:61:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   61 |             best = max(best, wgt);
      |                    ~~~^~~~~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from dreaming.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
dreaming.cpp:61:23: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   61 |             best = max(best, wgt);
      |                    ~~~^~~~~~~~~~~
dreaming.cpp:63:17: error: 'parent' was not declared in this scope
   63 |             k = parent(k);
      |                 ^~~~~~