Submission #1207292

#TimeUsernameProblemLanguageResultExecution timeMemory
1207292chambiTraffic (IOI10_traffic)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int max= 1000005;
vector<int>conexiones[max];
vector<int>fanaticos;
vector<long long>s_fanaticos;
int N;
long long t_fanaticos=0;
int mejor_ciudad=-1;
void calcular(int ciudad, int padre){
    suma_fanaticos[ciudad]=fanaticos[ciudad];
    for(int vecino:conexiones[ciudad]){
        if(vecino==padre){
            continue;
        }
        calcular(vecino, ciudad);
        s_fanaticos[ciudad]+=s_fanaticos[vecino];
    }
}
void centro(int ciudad, int padre){
    bool es_centro=true;
    for(int vecino:conexiones[ciudad]){
        if(vecino==padre){
            continue;
        }
        if(s_fanaticos[vecino]>t_fanaticos/2){
            es_centro=false;
            centro(vecino, ciudad);
            return;
        }
        long long fuera= t_fanaticos-s_fanaticos[ciudad];
        if(fuera>t_fanaticos/2){
            es_centro=false;
            centro(vecino, ciudad);
            return;
        }
        if(centro){
            mejor_ciudad=ciudad;
        }
    }
}
int LocateCenter(int n, vector<int>&P, vector<int>&S, vector<int>&D){
    N=n;
    fanaticos=P;
    s_fanaticos.assign(N, 0);
    t_fanaticos=0;
    mejor_ciudad=-1;
    for(int i=0; i<N-1; i++){
        conexiones[S[i]].push_back(D[i]);
        conexiones[D[i]].push_back(S[i]);
    }
    for(int f:P){
        t_fanaticos+=f;
    }
    calcular(0, -1);
    centro(0, -1);
    return mejor_ciudad;
}

Compilation message (stderr)

traffic.cpp:6:23: error: reference to 'max' is ambiguous
    6 | vector<int>conexiones[max];
      |                       ^~~
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/ostream:38,
                 from /usr/include/c++/11/iostream:39,
                 from traffic.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidates are: '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:3461:5: note:                 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
In file included from /usr/include/c++/11/bits/char_traits.h:39,
                 from /usr/include/c++/11/ios:40,
                 from /usr/include/c++/11/ostream:38,
                 from /usr/include/c++/11/iostream:39,
                 from traffic.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:                 '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:254:5: note:                 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
traffic.cpp:5:11: note:                 'const int max'
    5 | const int max= 1000005;
      |           ^~~
traffic.cpp: In function 'void calcular(int, int)':
traffic.cpp:13:5: error: 'suma_fanaticos' was not declared in this scope; did you mean 's_fanaticos'?
   13 |     suma_fanaticos[ciudad]=fanaticos[ciudad];
      |     ^~~~~~~~~~~~~~
      |     s_fanaticos
traffic.cpp:14:20: error: 'conexiones' was not declared in this scope
   14 |     for(int vecino:conexiones[ciudad]){
      |                    ^~~~~~~~~~
traffic.cpp: In function 'void centro(int, int)':
traffic.cpp:24:20: error: 'conexiones' was not declared in this scope
   24 |     for(int vecino:conexiones[ciudad]){
      |                    ^~~~~~~~~~
traffic.cpp: In function 'int LocateCenter(int, std::vector<int>&, std::vector<int>&, std::vector<int>&)':
traffic.cpp:51:9: error: 'conexiones' was not declared in this scope
   51 |         conexiones[S[i]].push_back(D[i]);
      |         ^~~~~~~~~~