Submission #1052374

#TimeUsernameProblemLanguageResultExecution timeMemory
1052374noyancanturkStations (IOI20_stations)C++17
0 / 100
1 ms600 KiB
#include "stations.h"

#include<bits/stdc++.h>
using namespace std;

#define pb push_back

const int lim=2000;

vector<int>v[lim];

int sz[lim];

int sbs(int node,int par){
	sz[node]=1;
	for(int j:v[node]){
		if(j==par)continue;
		sz[node]+=sbs(j,node);
	}
	return sz[node];
}

vector<int>labels;

void dfs(int node,int par,int l,int r,bool tag){
	//cerr<<node<<" "<<par<<" "<<l<<" "<<r<<"\n";
	assert(node<labels.size());
	labels[node]=tag?l:r;
	int past=tag;
	for(int j:v[node]){
		if(j==par)continue;
		dfs(j,node,l+past,l+past+sz[j]-1,!tag);
		past+=sz[j];
	}
}

std::vector<int> label(int n, int k, std::vector<int> U, std::vector<int> V) {
	for(int i=0;i<n-1;i++){
		v[U[i]].pb(V[i]);
		v[V[i]].pb(U[i]);
	}
	labels=vector<int>(n);
	sbs(0,-1);
	assert(0);
	dfs(0,-1,0,n-1,1);
	/*
	for(int i=0;i<n;i++)cerr<<labels[i]<<" ";
	cerr<<"\n";
	*/
	return labels;
}

int find_next_station(int s, int t, std::vector<int> c) {
	return -1;
	if(s<c[0]){
		for(int i=0;i+1<c.size();i++){
			if(s<=t&&t<=c[i]){
				return c[i];
			}
		}
		return c[c.size()-1];
	}else{
		for(int i=int(c.size())-1;i;i--){
			if(c[i]<=t&&t<=s){
				return c[i];
			}
		}
		return c[0];
	}
}

Compilation message (stderr)

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from stations.cpp:3:
stations.cpp: In function 'void dfs(int, int, int, int, bool)':
stations.cpp:27:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |  assert(node<labels.size());
      |         ~~~~^~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:56:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for(int i=0;i+1<c.size();i++){
      |               ~~~^~~~~~~~~
#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...