This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// Copyright © 2018 Diego Garcia Rodriguez del Campo. All rights reserved.
#include<bits/stdc++.h>
#define MAX 1000005
#define optimiza_io cin.tie(0); ios_base::sync_with_stdio(0);
using namespace std;
typedef long long i64;
int N, men, tam;
int v[MAX];
vector < int > ady[MAX];
int id[MAX];
int sz[MAX];
int uf( int x )
{
if( x == id[x] )
return x;
return id[x] = uf( id[x] );
}
int main()
{
optimiza_io
cin >> N;
for( int i = 1; i < N; i ++ )
{
int a, b;
cin >> a >> b;
ady[a].push_back( b );
ady[b].push_back( a );
}
for( int i = 1; i <= N; i ++ )
{
cin >> v[i];
if( men > v[i] or i == 1 )
men = v[i];
}
if( men > 1 )
{
cout << men << "/1\n";
return 0;
}
for( int i = 1; i <= N; i ++ )
id[i] = i, sz[i] = 1;
for( int i = 1; i <= N; i ++ )
if( v[i] == 1 )
for( auto x : ady[i] )
if( v[x] == 1 && uf( i ) != uf( x ) )
sz[uf( i )] += sz[uf( x )], id[uf( x )] = id[uf( i )];
for( int i = 1; i <= N; i ++ )
if( v[i] == 1 )
tam = max( tam , sz[uf( i )] );
cout << "1/" << tam << "\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |