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
2017-05-18 00:40:46+0900
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
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