답안 #844706

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
844706 2023-09-05T17:31:22 Z oneloveforever 봉쇄 시간 (IOI23_closing) C++17
컴파일 오류
0 ms 0 KB
//#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define ii pair<int,int>
#define ll long long
int n,a,b;
ll k;
vector<vector<ii> >edge;
dfs(int x,int par,vector<ll>&dist)
{
    for(ii need:edge[x])
    {
        int node=need.x;
        ll value=need.y;
        if(node==par)continue;
        dist[node]=dist[x]+value;
        dfs(node,x,dist);
    }
}
int Sub1(vector<ll>distX,vector<ll>distY)
{
    vector<ll>que;
    for(int i=0; i<=n-1; i++)
    {
        que.push_back(distX[i]);
        que.push_back(distY[i]);
    }
    sort(que.begin(),que.end());
    ll res=k;
    int ans=0;
    for(int value:que)
    {
        if(res<value)break;
        res-=value;
        ans++;
    }
    return ans;
}
int max_score(int N,int X,int Y,long long K,vector<int>U,vector<int>V,vector<int>W)
{
    n=N;
    a=X;
    b=Y;
    k=K;
    edge.resize(n);
    for(int i=1; i<=N-1; i++)
    {
        int x=U[i-1];
        int y=V[i-1];
        int value=W[i-1];
        edge[x].push_back({y,value});
        edge[y].push_back({x,value});
    }
    vector<ll>distX(n);
    vector<ll>distY(n);
    dfs(a,0,distX);
    dfs(b,0,distY);
    if(distX[b]>2*k)return Sub1(distX,distY);


}

/*signed main()
{
    int n,x,y,k;
    vector<int>U;
    vector<int>V;
    vector<int>W;
    cin>>n>>x>>y>>k;
    for(int i=1; i<=n-1; i++)
    {
        int x;
        cin>>x;
        U.push_back(x);
    }
    for(int i=1; i<=n-1; i++)
    {
        int y;
        cin>>y;
        V.push_back(y);
    }
    for(int i=1; i<=n-1; i++)
    {
        int value;
        cin>>value;
        W.push_back(value);
    }
    cout<<max_score(n,x,y,k,U,V,W);
}*/

Compilation message

closing.cpp:11:1: error: ISO C++ forbids declaration of 'dfs' with no type [-fpermissive]
   11 | dfs(int x,int par,vector<ll>&dist)
      | ^~~
closing.cpp: In function 'int dfs(int, int, std::vector<long long int>&)':
closing.cpp:21:1: warning: no return statement in function returning non-void [-Wreturn-type]
   21 | }
      | ^
closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:56:22: warning: control reaches end of non-void function [-Wreturn-type]
   56 |     vector<ll>distX(n);
      |                      ^