제출 #1140509

#제출 시각아이디문제언어결과실행 시간메모리
1140509Muhammad_AneeqPetrol stations (CEOI24_stations)C++20
18 / 100
3595 ms10544 KiB
/*
بسم الله الرحمن الرحيم
Author:
                          (:Muhammad Aneeq:)
*/

#include <iostream>
#include <vector>
#warning check the output
using namespace std;
int const N=7e4+10;
vector<pair<int,int>>nei[N]={};
int ans[N]={};
int n,k;
int sz[N]={};
int deg[N]={};
bool w1=0;
void dfs(int u,int pet,int p=-1)
{
    sz[u]=1;
    for (auto [i,w]:nei[u])
    {
        if (i==p)
            continue;
        if (w>pet)
        {
            dfs(i,k-w,u);
            ans[u]+=sz[i];
        }
        else
            dfs(i,pet-w,u);
        sz[u]+=sz[i];
    }
}
void subt2()
{
    for (int i=0;i<n;i++)
    {
        ans[i]+=(i/k)*(n-i-1);
        ans[n-i-1]+=(i/k)*(n-i-1);
    }
}
inline void solve()
{
    cin>>n>>k;
    int mx=0;
    bool z=0;
    for (int i=0;i<n-1;i++)
    {
        int u,v,w;
        cin>>u>>v>>w;
        nei[u].push_back({v,w});
        nei[v].push_back({u,w});
        deg[u]++;
        deg[v]++;
        z=(z&(w==1));
        mx=max(mx,deg[u]);
        mx=max(mx,deg[v]);
    }
    if (mx<=2&&z)
        subt2();
    else
        for (int i=0;i<n;i++)
            dfs(i,k);
    for (int i=0;i<n;i++)
        cout<<ans[i]<<endl;
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int t=1;
    for (int i=1;i<=t;i++)
    {
        solve();
    }
}

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

Main.cpp:9:2: warning: #warning check the output [-Wcpp]
    9 | #warning check the output
      |  ^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...