Untitled

 avatar
unknown
plain_text
16 days ago
1.6 kB
5
Indexable
#include<iostream>
#include<cstring>
#define N 20
using namespace std;
int a[N][N];
char s[100];
int k;
int main()
{

    string orase[N]={"Arad","Zerind","Oradea","Sibiu","Fagaras","Timisoara","Lugoj","Mehadia","Drobeta","Craiova","Ramnicu Valcea","Pitesti","Bucuresti","Giurgiu","Urziceni","Hirsova","Eforie","Vaslui","Iasi","Neamt"};
    a[0][1]=1;
    a[0][3]=1;
    a[0][5]=1;
    a[1][2]=1;
    a[2][3]=1;
    a[3][4]=1;
    a[3][10]=1;
    a[4][12]=1;
    a[5][6]=1;
    a[6][7]=1;
    a[7][8]=1;
    a[8][9]=1;
    a[9][11]=1;
    a[10][11]=1;
    a[11][12]=1;
    a[12][13]=1;
    a[12][14]=1;
    a[14][15]=1;
    a[15][16]=1;
    a[14][17]=1;
    a[17][18]=1;
    a[18][19]=1;
    for(int i=0;i<N;i++)
        for(int j=0;j<N;j++)
            if(a[i][j]==1)
            a[j][i]=1;

    bool gasit=false;
    int viz[N],noduri[N],parinte[N];
    int nrNoduri=0,start=0,stop=12;
    for(int i = 0; i < N; i++)
        viz[i]= 0;
    noduri[nrNoduri++]=start;
    viz[start]=1;
    while((nrNoduri>0)&&(gasit==false))
    {
        int nod_curent=noduri[0];
        for (int i = 0; i < nrNoduri; i++) 
            cout<<orase[noduri[i]] <<" ";
        cout << endl;
        //cout<<orase[nod_curent]<<" ";
        for(int i=0;i<nrNoduri-1;i++)
            noduri[i]=noduri[i+1];
        nrNoduri--;
        if(nod_curent==stop)
            gasit=true;
        else
            for(int i=0;i<N;i++)
                if(a[nod_curent][i]==1 && viz[i]==0)
                {
                    noduri[nrNoduri++]=i;
                    viz[i]=1;
    }
    }



}
Editor is loading...
Leave a Comment