Pagini recente » Cod sursa (job #1733157) | Cod sursa (job #1079797) | Cod sursa (job #865400) | Cod sursa (job #1466525) | Cod sursa (job #1888846)
#include <fstream>
#include <vecotr>
#define Nmax 1001
using namespace std;
ifstream f("salvare.in");
ofstream g("salvare.out");
int n,k,x[Nmax];
vector<int> V[Nmax];
vector<pair<int,int> > C;
bool weCan(int x)
{
C.clear();
memset(uz,0,sizeof(uz));
for (int i=1;i<=n;i++)
{
if(V[i].size()==1)
{
C.push_back(make_pair(i,0));
uz[i] = 1;
}
}
nr = 0;
for (int i=0;i<C.size();i++)
{
if (C[i].second == x)
{
nr++;
x[nr] = C[i].first;
C[i].second = -x;
}
for (int j=0;j<V[C[i].first].size();j++)
{
if (!uz[V[C[i].first][j])
{
uz[V[C[i].first][j] = 1;
}
}
}
}
int main()
{
f>>n>>k;
for (int i=1;i<n;i++)
{
f>>x>>y;
V[x].push_back(y);
V[y].push_back(x);
}
int st=0,dr=n;
while (st<=dr)
{
int mij = (st+dr)/2;
if (weCan(mij))
dr=mij-1;
else
st=mij+1;
}
g<<st;
dfs(st);
return 0;
}