Cod sursa(job #3039352)

Utilizator EnergyIpadCatalin Ispas EnergyIpad Data 28 martie 2023 14:11:34
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.5 kb
{\rtf1\ansi\ansicpg1252\cocoartf2639
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0

\f0\fs24 \cf0 #include <iostream>\
#include <bits/stdc++.h>\
#include <vector>\
\
using namespace std;\
ifstream fin ("BFS.in");\
ofstream fout ("BFS.out");\
\
int main()\
\{\
    int a[101][101];\
    int n,m,start;\
    fin>>n>>m>>start;\
    for(int i=1;i<=m;i++)\{\
        int x,y;\
        fin>>x>>y;\
        a[x][y]=1;\
    \}\
    \
    int distVal=1;\
    int distance[101]=\{-1\};\
    distance[start]=0;\
    int howFar=1;\
    \
    int st=1,dr=1;\
    int vizite[101]=\{0\},orase[101];\
    vizite[start]=1;\
    orase[dr]=start;\
    while(st<=dr)\{\
        int city=orase[st];\
        for(int i=1;i<=n;i++)\{\
            if (vizite[i]==0 && a[city][i]==1)\{\
                vizite[i]=1;\
                dr++;\
                orase[dr]=i;\
                \
                distance[i]=distVal;\
            \}\
        \}\
        if (howFar==st)\{\
            howFar=dr;\
            distVal++;\
        \}\
        st++;\
    \}\
    \
    for (int i=1;i<=n;i++)\{\
        if (vizite[i]==0)\{\
            fout << "-1 ";\
        \}else\{\
            fout << distance[i] << " ";\
        \}\
    \}\
\
    return 0;\
\}\
\
\
\
\
\
}