Submission #1139069

#TimeUsernameProblemLanguageResultExecution timeMemory
1139069santi3223새로운 문제 (POI13_luk)C++17
100 / 100
1053 ms25300 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define vl vector<ll> #define vs vector<string> #define vb vector<bool> #define vc vector<char> #define ull unsigned long long #define pll pair<ll, ll> #define pb push_back #define fi first #define se second #define ff(i, p, x) for (ll i = p; i < x; i++) #define all(a) (a).begin(), (a).end() #define rall(a) (a).rbegin(), (a).rend() #define ed "\n" #define IO std::ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll MOD = 1e9+7; vector<vl> conexiones; vb vis; ll dfs(ll cur, ll mid){ vis[cur] = true; ll x = mid; ff(i, 0, conexiones[cur].size()){ if(vis[conexiones[cur][i]] == true){ continue; } vis[conexiones[cur][i]] = true; x += dfs(conexiones[cur][i], mid)-1; } return min(0LL, x); } int main(){ IO ll n; cin >> n; conexiones = vector<vl>(n); ff(i, 0, n-1){ ll a, b; cin >> a >> b; a--; b--; conexiones[a].pb(b); conexiones[b].pb(a); } ll l = 0, r = LLONG_MAX, c = 0; while(l <= r){ ll mid = l + (r-l)/2; vis = vb(n, 0); if(dfs(0, mid) == 0){ r = mid-1; c = mid; } else{ l = mid+1; } } cout << c; return 0; } //aguss carry
#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...
#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...