Pagini recente » Cod sursa (job #2612632) | Cod sursa (job #2083635) | Cod sursa (job #2178525) | Cod sursa (job #2283926) | Cod sursa (job #1869311)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("statiuni.in");
ofstream fout("statiuni.out");
vector <int> vec[100001];
queue <int> q;
int viz[100001],lg[100001],start[100001];
int main()
{
int n,k,i,x,y,nrs=0;
fin>>n>>k;
for(i=1;i<n;i++)
{
fin>>x>>y;
vec[x].push_back(y);
vec[y].push_back(x);
}
for(i=1;i<=n;i++)
if(vec[i].size()==1)
{
q.push(i);
lg[i]=0;
viz[i]=1;start[i]=i;
}
while(!q.empty())
{
x=q.front();q.pop();
for(i=0;i<vec[x].size();i++)
{
if(viz[vec[x][i]]<=1&&lg[x]+1<=k && vec[x][i]!=start[x])
{
viz[vec[x][i]]++;
if(start[vec[x][i]]!=0)
start[vec[x][i]]=0;
else
start[vec[x][i]]=start[x];
lg[vec[x][i]]=lg[x]+1;
if(viz[vec[x][i]]==2)
nrs++;
q.push(vec[x][i]);
}
}
}
fout<<nrs;
return 0;
}