Submission #1292303


Source Code Expand

#include<cstdio>
#include<vector>


using namespace std;

using ll=long long;
using vi=vector<int>;
using vvi=vector<vi>;


void solve_r(vvi& v, int d, int cur, int prev, double r, double& result)
{
	int n;

	n=v[cur].size();
	if(prev>=0) n--;
	if(n==0)
	{
		result+=d*r;
	}

	r/=n;
	for(int e: v[cur])
	{
		if(e==prev) continue;
		solve_r(v, d+1, e, cur, r, result);
	}
}


void solve(vector<double>& r, vvi& v)
{
	double result;

	for(int i=1;i<v.size();i++)
	{
		result=0.0;
		solve_r(v, 0, i, -1, 1.0, result);
		r[i]=result;
	}
}


int main(void)
{
	vector<double> r;
	vvi v;
	int n, a, b;

	while(scanf("%d", &n)==1)
	{
		v.clear();
		v.resize(n+1);
		r.resize(n+1);
		for(int i=0;i<n-1;i++)
		{
			scanf("%d%d", &a, &b);
			v[a].push_back(b);
			v[b].push_back(a);
		}
		solve(r, v);
		for(int i=1;i<=n;i++)
		{
			printf("%f\n", r[i]);
		}
	}
	return 0;
}

Submission Info

Submission Time
Task D - Driving on a Tree
User myanta
Language C++14 (GCC 5.4.1)
Score 220
Code Size 933 Byte
Status TLE
Exec Time 1057 ms
Memory 15488 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:58:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d%d", &a, &b);
                         ^

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 190 220 / 220 0 / 390
Status
AC × 2
TLE × 1
AC × 2
AC × 4
TLE × 4
Set Name Test Cases
Subtask1 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt
Subtask2 sub2_in1.txt, sub2_in2.txt
Subtask3 sub1_in1.txt, sub1_in2.txt, sub1_in3.txt, sub2_in1.txt, sub2_in2.txt, sub3_in1.txt, sub3_in2.txt, sub3_in3.txt
Case Name Status Exec Time Memory
sub1_in1.txt AC 1 ms 256 KB
sub1_in2.txt AC 17 ms 384 KB
sub1_in3.txt TLE 1056 ms 14208 KB
sub2_in1.txt AC 12 ms 256 KB
sub2_in2.txt AC 12 ms 256 KB
sub3_in1.txt TLE 1056 ms 9728 KB
sub3_in2.txt TLE 1057 ms 12276 KB
sub3_in3.txt TLE 1056 ms 15488 KB