Submission #1168167

#TimeUsernameProblemLanguageResultExecution timeMemory
1168167KaleemRazaSyed새로운 문제 (POI13_luk)C++20
90 / 100
373 ms22520 KiB
#include<bits/stdc++.h>

using namespace std;

const int N = 3e5 + 10;
vector<int> G[N];
int x;

int dfs(int v, int p = -1)
{
  int c = 0;
  vector<int> vec;
  int sm = 0;
  for(int u : G[v])
    if(u != p)
      {
	c++;
	sm += max(0, dfs(u, v));
      }
  return c + sm - x;  
}

int main()
{
  int n;
  cin >> n;
  for(int i = 1; i < n; i ++)
    {
      int u, v;
      cin >> u >> v;
      G[u].push_back(v);
      G[v].push_back(u);
    }

  int l = 0, r = n;
  while(r - l > 1)
    {
      int mid = (l + r) / 2;
      x = mid;
      if(max(0, dfs(1)) == 0)
	r = mid;
      else
	l = mid;
    }
  cout << r << endl;
  return 0;
}
#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...