Pagini recente » Cod sursa (job #1778908) | Cod sursa (job #1829795) | Cod sursa (job #1798050) | Cod sursa (job #2431327) | Cod sursa (job #2722242)
#include<fstream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;vector<int>v[100000];queue<int>q;int last,n,viz[100000]={0},c[100000]={0},diametru=0;void bfs(int nodcur){viz[nodcur]=1;q.push(nodcur);c[nodcur]=0;while(!q.empty()){int nod=q.front();viz[nod]=1;q.pop();for(int i=0;i<v[nod].size();i++)if(viz[v[nod][i]]==0){q.push(v[nod][i]);c[v[nod][i]]=c[nod]+1;diametru=c[v[nod][i]];viz[v[nod][i]]=1;last=v[nod][i];}}}int main(){ofstream g("darb.out");ifstream f("darb.in");f>>n;for(int x,y,i=0;i<n;i++){f>>x>>y;v[x].push_back(y);v[y].push_back(x);}bfs(1);memset(c,0, sizeof c);memset(viz,0, sizeof viz);bfs(last);g<<diametru+1;}