Cod sursa(job #879283)

Utilizator misinozzz zzz misino Data 15 februarie 2013 10:42:24
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("nivele2.in");
ofstream g("nivele2.out");
int n,i,x,y,j,nivel[100009];
vector<int>l[100009];
vector<int>sol[100009];
void dfs(int x,int niv)
{
    nivel[x]=niv;
    sol[niv].push_back(x);
    for(vector<int>::iterator it=l[x].begin();it!=l[x].end();++it)
    if(!nivel[*it])
    dfs(*it,niv+1);
}
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
    {
         f>>x>>y;
         l[x].push_back(y);
         l[y].push_back(x);
    }
    dfs(1,1);
    for(i=1;i<=n;++i)
    if(sol[i].begin()==sol[i].end())
    break;
    else
    {
        g<<"nivelul "<<i<<": ";
        for(j=0;j<sol[i].size()-1;++j)
        g<<sol[i][j]<<' ';
        g<<sol[i][j]<<'\n';
    }
    return 0;
}