Pagini recente » Istoria paginii utilizator/songoku_blond | Cod sursa (job #963803) | Cod sursa (job #1251215) | Cod sursa (job #2330032) | Cod sursa (job #1493967)
#include <iostream>
#include <fstream>
#include <string.h>
#define N_MAX 10001
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n,M[N_MAX][N_MAX];
int c[N_MAX],viz[N_MAX],prim,ultim,varf,h;
void Read()
{
short x,y;
f >> n;
for(short i = 1 ; i < n; i++)
{
f >> x >> y;
M[x][y] = M[y][x] = 1;
}
f.close();
}
void BF()
{
int k;
h = 0;
bool r;
while(prim <= ultim)
{
r = 0;
varf = c[prim];
for(k = 1; k <= n; k++)
if(M[varf][k] && !viz[k])
{
if(!r)
{
h++;
r = 1;
}
ultim++;
viz[k] = 1;
c[ultim] = k;
}
prim++;
}
}
int main()
{
prim = ultim = 1;
c[prim] = 1;
viz[1] = 1;
Read();
BF();
short k = c[ultim];
memset(c,0,N_MAX);
memset(viz,0,N_MAX);
prim = ultim = 1;
c[prim] = k;
viz[k] = 1;
BF();
g << h;
g.close();
return 0;
}