সোমবার, ৩০ অক্টোবর, ২০১৭

UVA 558 - Wormholes

#include"bits/stdc++.h"
using namespace std;
long i,flag;
#define inf (1<<29)
long dis[1005];
struct node
{
    long u,v;
    long w;
};
vector<node>vec;
void bellman_ford(long n,long m)
{
    for(i=0;i<n;i++)
    dis[i]=inf;
    dis[0]=0;//source a 0 rakhlam
    long j;
    for(i=0;i<n-1;i++)
    {
        for(j=0;j<m;j++)
        {
            if((dis[vec[j].u]+vec[j].w<dis[vec[j].v])&&(dis[vec[j].u]!=inf))
            {
                dis[vec[j].v]=dis[vec[j].u]+vec[j].w;
            }
        }
    }
    for(j=0;j<m;j++)
    {
        if(dis[vec[j].u]+vec[j].w<dis[vec[j].v])
        {
            flag=1;
        }
    }
}
int main()
{
    //cout<<inf<<endl;
    long ts;
    cin>>ts;
    while(ts--)
    {
        long n,m,a,b,c;
        cin>>n>>m;
        node edge;
        for(i=0;i<m;i++)
        {
            cin>>a>>b>>c;
            edge.u=a;
            edge.v=b;
            edge.w=c;
            vec.push_back(edge);
        }
        flag=0;
        bellman_ford(n,m);
        if(flag==0)
        {
            printf("not possible\n");
        }
        else
            printf("possible\n");
        for(i=0;i<n+2;i++)
        {
            dis[i]=0;
        }
        vec.clear();
    }
    return 0;
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...