Submission #1109083

#TimeUsernameProblemLanguageResultExecution timeMemory
1109083agussTraffic (IOI10_traffic)C++14
0 / 100
7 ms8784 KiB
#include <bits/stdc++.h>

#define _USE_MATH_DEFINES
#define INF LLONG_MAX
#define MOD 1000000007

#define endl "\n"
#define sp " "

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()

#define f1(i, x) for(auto &i : x)
#define f2(i, x, j) for(ll i = j; i < x; i++)

#define raya() cout << endl << "====================================" << endl
#define dbg(x) cerr << #x << ": " << x << endl;

using namespace std;
using ll = long long;
int sum = 0;
vector<vector<int>> sum1, sum2, arr;
vector<int> P;
vector<bool> vis;
ll dfs(int n){
    if(vis[n]) return 0;
    vis[n] = 1; 
    if(arr[n].size() == 1){
        sum1[n].push_back(0);
        sum1[n].push_back(sum - P[n]);
        return P[n];
    } else {
        f1(i, arr[n]){
            int aux;
            aux = dfs(i);
            if(aux){
                sum1[n].push_back(aux);
            }
        }
    }
    int ans = 0;
    f1(i, sum1[n]){
        ans += i;
    }
    sum1[n].push_back(sum - ans - P[n]);
    return ans + P[n];
}
int LocateCentre(int n, int p[], int s[], int d[]){
    arr.assign(n, vector<int>(0));
    sum1.assign(n, vector<int>(0));
    sum2.assign(n, vector<int>(0));
    f2(i, n, 0){
        P.push_back(p[i]);
        sum += P[i];
    }
    vis.assign(n, 0);
    int r;
    f2(i, n - 1, 0){
        arr[s[i]].push_back(d[i]);
        arr[d[i]].push_back(s[i]);
        if(arr[s[i]].size() > 1){
            r = s[i];
        }
        if(arr[d[i]].size() > 1){
            r = d[i];
        }
    }
    dfs(r);
    int sans = -1, ans;
    f2(i, n, 0){
        int aux = 0;
        f1(j, sum1[i]){
            aux = max(j, aux);
        }
        if(sans == -1){
            sans = aux;
            ans = i;
        }
        if(sans > aux){
            sans = aux;
            ans = i;
        } 
    }
    return ans;
}

Compilation message (stderr)

traffic.cpp: In function 'int LocateCentre(int, int*, int*, int*)':
traffic.cpp:84:12: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
   84 |     return ans;
      |            ^~~
traffic.cpp:68:8: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   68 |     dfs(r);
      |     ~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...