Submission #879205

#TimeUsernameProblemLanguageResultExecution timeMemory
879205goduadzesabaClosing Time (IOI23_closing)C++17
8 / 100
121 ms35368 KiB
#include "closing.h"
#include <bits/stdc++.h>
using namespace std;
long long u[200005],d[400005],i,j,ds,m,ans,sm;
vector <pair<long long,long long> > v[200005];
void dfs(long long g){
	u[g]=1;
	for (int j=0; j<v[g].size(); j++)
		if (u[v[g][j].first]==0){
			m++; ds+=v[g][j].second; d[m]=ds;
			dfs(v[g][j].first); ds-=v[g][j].second;
		}
}
int max_score(int N, int X, int Y, long long K,
              std::vector<int> U, std::vector<int> V, std::vector<int> W){
    for (i=0; i<N; i++){u[i]=0; v[i].clear();}
    for (i=0; i<N-1; i++){
    	v[U[i]].push_back({V[i],W[i]});
    	v[V[i]].push_back({U[i],W[i]});
	}
	ds=m=d[0]=0; dfs(X);
	for (i=0; i<N; i++) u[i]=0;
	m++; ds=d[m]=0; dfs(Y);
	sort (d,d+m+1);
	ans=sm=0;
	for (i=0; i<m && sm+d[i]<=K; i++){
		sm+=d[i]; ans++;
	}
	return ans;
}

Compilation message (stderr)

closing.cpp: In function 'void dfs(long long int)':
closing.cpp:8:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |  for (int j=0; j<v[g].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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...