Cod sursa(job #2722242)

Utilizator LaureniuNeghina Laurentiu Laureniu Data 12 martie 2021 18:02:40
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#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;}