Pagini recente » Monitorul de evaluare | Cod sursa (job #270639) | Cod sursa (job #1908913) | Cod sursa (job #285910) | Cod sursa (job #2722240)
#include<fstream>
#include<vector>
#include<queue>
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;}