Cod sursa(job #3300604)

Utilizator Benjamin4321234Benjamin Secara Benjamin4321234 Data 17 iunie 2025 19:26:20
Problema Radiatie Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
using namespace std;
ifstream fin("radiatie.in");
ofstream fout("radiatie.out");

int n,m,k,x,y,z,maxi_curent;
pair<int,int> maxim;
vector<pair<int,int>> v[15001];
queue<int> q;
bool vizitat[15001];

int bfs(int m)
{
    while(!q.empty())
    {
        q.pop();
    }
    bool ok=0;
    pair<int,int> maxim= {0,0};
    vizitat[m]=1;
    q.push(m);
    while(!q.empty())
    {
        if(ok)
        {
            break;
        }
        int mini_curent=10000001;
        int a=q.front();
        q.pop();
        if(a==y)
        {
            ok=1;
        }
        for(auto u:v[a])
        {
            if(!vizitat[u.first])
            {
                if(u.second<mini_curent)
                {
                    mini_curent=u.second;
                    maxim.first=u.first;
                }
            }
        }
        if(mini_curent!=10000001)
        {
            maxim.second=max(maxim.second,mini_curent);
            vizitat[maxim.first]=1;
            q.push(maxim.first);
        }
    }
    return maxim.second;
}

int main()
{
    fin>>n>>m>>k;
    for(int i=1; i<=m; i++)
    {
        fin>>x>>y>>z;
        v[x].push_back({y,z});
        v[y].push_back({x,z});
    }
    for(int i=1; i<=k; i++)
    {
        fin>>x>>y;
        fout<<bfs(x)<<'\n';
        memset(vizitat,0,sizeof(vizitat));
    }

    return 0;
}