# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1191584 | SmuggingSpun | Papričice (COCI20_papricice) | C++20 | 37 ms | 5188 KiB |
#include<bits/stdc++.h>
#define taskname "D"
using namespace std;
template<class T>void minimize(T& a, T b){
if(a > b){
a = b;
}
}
template<class T>void maximize(T& a, T b){
if(a < b){
a = b;
}
}
const int lim = 2e5 + 5;
vector<int>g[lim];
int n, u[lim], v[lim];
namespace sub1{
int cnt;
bitset<lim>vis;
void dfs(int s, const int& i1, const int& i2){
cnt++;
vis.set(s);
for(int& i : g[s]){
if(i != i1 && i != i2){
int d = u[i] ^ v[i] ^ s;
if(!vis.test(d)){
dfs(d, i1, i2);
}
}
}
}
void solve(){
int ans = n;
for(int i = 1; i < n; i++){
for(int j = i + 1; j < n; j++){
vis.reset();
int max_cnt = 0, min_cnt = n;
for(int k = 1; k <= n; k++){
if(!vis.test(k)){
cnt = 0;
dfs(k, i, j);
minimize(min_cnt, cnt);
maximize(max_cnt, cnt);
}
}
minimize(ans, max_cnt - min_cnt);
}
}
cout << ans;
}
}
namespace sub23{
void solve(){
}
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if(fopen(taskname".inp", "r")){
freopen(taskname".inp", "r", stdin);
}
cin >> n;
for(int i = 1; i < n; i++){
cin >> u[i] >> v[i];
g[u[i]].emplace_back(i);
g[v[i]].emplace_back(i);
}
if(n <= 200){
sub1::solve();
}
else{
sub23::solve();
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |