Submission #1242785

#TimeUsernameProblemLanguageResultExecution timeMemory
1242785domiIdeal city (IOI12_city)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>

using namespace std;

const int64_t MOD = 1e9;

int64_t n, ans;

void dfs(int nod, int p = -1, vector<vector<int>>& T, vector<int>& SZ, vector<int>& s) {
    SZ[nod] = s[nod] - 1;

    for (auto &son : T[nod]) {
        if (son == p) continue;

        dfs(son, nod);
        SZ[nod] += SZ[son];
        ans += (n - SZ[son]) * SZ[son];
    }
}

int64_t solve(map<int64_t, vector<int64_t>>& mp) {

    vector<vector<int64_t>>T;
    map<pair<int64_t, int64_t>, int64_t>id;
    vector<int64_t>s;
    int64_t cnt = 0, idx = 0;

    for (auto &[v, ap] : mp) {
        sort(ap.begin(), ap.end());
        ++idx;

        for (int64_t i = 0; i < ap.size(); ++i) {
            if (i == 0 || ap[i] != ap[i - 1] + 1) {
                ++cnt;
                T.push_back({});
                s.push_back(0);
            }

            id[{v, ap[i]}] = cnt;
            ++s.back();

            if (idx != 1 && id.find({v - 1, ap[i]}) != id.end() && (T[cnt].empty() || id[{v - 1, ap[i]}]) != T[cnt].back()) {
                T[cnt].push_back(id[{v - 1, ap[i]}]);
                T[id[{v - 1, ap[i]}]].push_back(cnt);
            }
        }
    }

    vector<int64_t>SZ(cnt + 1, 0);
    ans = 0;

    dfs(0, -1);
    return ans;
}

int DistanceSum(int N, int *X, int *Y) {
    n = N;

    map<int64_t, vector<int64_t>>lin, col;
    for (int64_t i = 0; i < N; ++i) {
        col[X[i]].push_back(Y[i]);
        lin[Y[i]].push_back(X[i]);
    }

    return solve(lin) + solve(col);
}

Compilation message (stderr)

city.cpp:9:52: error: default argument missing for parameter 3 of 'void dfs(int, int, std::vector<std::vector<int> >&, std::vector<int>&, std::vector<int>&)'
    9 | void dfs(int nod, int p = -1, vector<vector<int>>& T, vector<int>& SZ, vector<int>& s) {
      |                               ~~~~~~~~~~~~~~~~~~~~~^
city.cpp:9:23: note: ...following parameter 2 which has a default argument
    9 | void dfs(int nod, int p = -1, vector<vector<int>>& T, vector<int>& SZ, vector<int>& s) {
      |                   ~~~~^~~~~~
city.cpp:9:68: error: default argument missing for parameter 4 of 'void dfs(int, int, std::vector<std::vector<int> >&, std::vector<int>&, std::vector<int>&)'
    9 | void dfs(int nod, int p = -1, vector<vector<int>>& T, vector<int>& SZ, vector<int>& s) {
      |                                                       ~~~~~~~~~~~~~^~
city.cpp:9:85: error: default argument missing for parameter 5 of 'void dfs(int, int, std::vector<std::vector<int> >&, std::vector<int>&, std::vector<int>&)'
    9 | void dfs(int nod, int p = -1, vector<vector<int>>& T, vector<int>& SZ, vector<int>& s) {
      |                                                                        ~~~~~~~~~~~~~^