제출 #1287645

#제출 시각아이디문제언어결과실행 시간메모리
1287645islam_2010경주 (Race) (IOI11_race)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

const int sz = 2e5+5;
const int inf = 1e9 + 7;
vector<pair<int, int>> g[sz];
vector<pair<int, int>> len[sz];
vector<int> sub(sz);
vector<bool> isremoved(sz);
vector<pair<int, int>> anc[sz];
map<int, int> mp;
int mn = sz, mx;
int subtree_size(int node, int p = -1){
    sub[node] = 1;
    for(auto i: g[node]){
        if(isremoved[i.first] || i.first == p) continue;
        sub[node] += subtree_size(i.first, node);
    }return sub[node];
}
int get_centroid(int node, int stsz, int p = -1){

    for(auto i: g[node]){
        if(isremoved[i.first] || i.first == p) continue;
        if(sub[i.first] * 2 > stsz){
            return get_centroid(i.first, stsz, node);
        }
    }return node;
}

int search(int node, int p = -1, int d = 0, int dist = 0, int k, bool calc){
    if(d > k){
        return;
    }
    if(calc){
        if(mp[k-d]){
            for(auto i: len[k-d]){
                mn = min(mn, i.first+dist);
            }
        }
    }else {
        mp[d]++;
        len[d].push_back({dist, node});
        mx = max(mx, d);
    }



    for(auto i: g[node]){
        if(isremoved[i.first] || i.first == p) continue;

        search(i.first, node, d + i.second, dist+1, k, calc);
        
    }


}

int build(int node, int k){
    int cent = get_centroid(node, subtree_size(node));
    mp[0] = 1;
    isremoved[cent] = true;
    mx = 0;
    mn = inf;
    search(cent, cent, 0, 0, k, 0);
    search(cent, cent, 0, 0, k, 1);
    for(int i = 0; i < mx; i++){
        len[i].clear();
        
    }mp.clear();
    for(auto i: g[cent]){
        if(!isremoved[i.first]){
            build(i.first, k);
        }
    }


}

int best_path(int N, int K, int H[][2], int L[]){

    for(int i = 0; i < N; i++){
        g[H[i][0]].push_back({H[i][1], L[i]});
        g[H[i][1]].push_back({H[i][0], L[i]});
    }
    return mn;
}

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

race.cpp:31:63: error: default argument missing for parameter 5 of 'long long int search(long long int, long long int, long long int, long long int, long long int, bool)'
   31 | int search(int node, int p = -1, int d = 0, int dist = 0, int k, bool calc){
      |                                                               ^
race.cpp:31:26: note: ...following parameter 2 which has a default argument
   31 | int search(int node, int p = -1, int d = 0, int dist = 0, int k, bool calc){
      |                          ^
race.cpp:31:71: error: default argument missing for parameter 6 of 'long long int search(long long int, long long int, long long int, long long int, long long int, bool)'
   31 | int search(int node, int p = -1, int d = 0, int dist = 0, int k, bool calc){
      |                                                                  ~~~~~^~~~
race.cpp: In function 'long long int search(long long int, long long int, long long int, long long int, long long int, bool)':
race.cpp:33:9: error: return-statement with no value, in function returning 'long long int' [-fpermissive]
   33 |         return;
      |         ^~~~~~
race.cpp: In function 'long long int build(long long int, long long int)':
race.cpp:78:1: warning: no return statement in function returning non-void [-Wreturn-type]
   78 | }
      | ^
race.cpp: In function 'long long int search(long long int, long long int, long long int, long long int, long long int, bool)':
race.cpp:57:1: warning: control reaches end of non-void function [-Wreturn-type]
   57 | }
      | ^