Cod sursa(job #1553049)

Utilizator enouGhAbu Ras Mohamed Ata Radu enouGh Data 19 decembrie 2015 10:17:10
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include<fstream>
#include<vector>
#include<queue>
#include<bitset>
using namespace std;

ifstream fin("darb.in");
ofstream fout("darb.out");

vector<int>a[100001];
queue<int>b;
int c[100001],el,N,M,S,x,y,sol;
bitset<100001>k;
void bfs(int nod)
{
    c[nod]=1;
    b.push(nod);
    while(!b.empty())
            {
              el=b.front();
              b.pop();
              for(int i=0;i<a[el].size();++i)
                if(c[a[el][i]]==0)
                  {
                      c[a[el][i]]=c[el]+1;
                      b.push(a[el][i]);
                  }
            }
}
void bfs2(int nod)
{
    k[nod]==1;
    b.push(nod);
    while(!b.empty())
            {
                el=b.front();
                b.pop();
                for(int i=0;i<a[el].size();++i)
                    if(k[a[el][i]]==0)
                    {
                        k[a[el][i]]=1;
                        b.push(a[el][i]);
                    }
            }
}

int main()
{
    fin>>N;
    for (int i=0;i<N-1;++i)
    {
        fin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    bfs2(1);
    bfs(el);
    fout<<c[el];
    return 0;
}