Submission #1069914

#TimeUsernameProblemLanguageResultExecution timeMemory
1069914vjudge1Petrol stations (CEOI24_stations)C++17
18 / 100
30 ms604 KiB

#include <bits/stdc++.h>
using namespace std;
long long int siz[1002];
int vis[1002];   vector<pair<int,long long int>> adjl[1002];
void dfs(int s){
    vis[s]++;
    for(int i = 0; i < adjl[s].size(); i++){
        if(vis[adjl[s][i].first] == 0){
            dfs(adjl[s][i].first);
            siz[s] += siz[adjl[s][i].first];
        }
    }
    siz[s]++;
}
int main()
{
   int n, k;
   cin >> n >> k;

   for(int i = 0; i < (n - 1); i++){
       int u, v;
       cin >> u >> v;
       long long int l;
       cin >> l;
       adjl[u].push_back({v,l});
       adjl[v].push_back({u, l});
   }
   long long int ans[n];
   for(int i = 0; i < n; i++){
       ans[i] = 0;
   }
   for(int i = 0; i < n; i++){
       long long int cap[n];
       for(int j = 0; j < n; j++){
           siz[j] = 0;
           cap[j] = 0;
           vis[j] = 0;
       }
       dfs(i);
       cap[i] = k;
       for(int j = 0; j < n; j++){
           vis[j] = 0;
       }
       queue<int>q;
       q.push(i);
       vis[i]++;
       while(!q.empty()){
           int a = q.front();
           q.pop();
           for(int j = 0; j < adjl[a].size(); j++){
               pair<int,long long int> p = adjl[a][j];
               int x = p.first;
               long long int dist = p.second;
               if(vis[x] == 0){
                   if(cap[a] >= dist){
                       cap[x] = cap[a] - dist;
                   }else{
                       ans[a] += siz[x];
                       cap[x] = k - dist;
                   }
                   q.push(x);
                   vis[x]++;
               }
           }
       }
       
   }
   for(int i = 0; i < n; i++){
       cout << ans[i] << endl;
   }
   
}

Compilation message (stderr)

Main.cpp: In function 'void dfs(int)':
Main.cpp:8:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |     for(int i = 0; i < adjl[s].size(); i++){
      |                    ~~^~~~~~~~~~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:51:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |            for(int j = 0; j < adjl[a].size(); j++){
      |                           ~~^~~~~~~~~~~~~~~~
#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...