বৃহস্পতিবার, ২৭ জুলাই, ২০১৭

UVA 11463 - Commandos

#include <bits/stdc++.h>
using namespace std;
long i,j,k,ar[105][105]={0};
void floyd_warshall()
{
    for(k=0;k<100;k++)
    {
        for(i=0;i<100;i++)
        {
            for(j=0;j<100;j++)
            {
                ar[i][j]=min(ar[i][j],ar[i][k]+ar[k][j]);
            }
        }
    }
}
main()
{
    long ts,cs=1;
    cin>>ts;
    while(ts--)
    {
        long node,edge,a,b,rs=0,source,desti;
        cin>>node>>edge;
        for(i=0;i<100;i++)
        {
            for(j=0;j<100;j++)
            {
                if(i==j)
                {
                    ar[i][j]=0;
                }
                else
                    ar[i][j]=1000000000;
            }
        }
        for(i=0;i<edge;i++)
        {
            cin>>a>>b;
            ar[a][b]=1;
            ar[b][a]=1;
        }
        floyd_warshall();
        cin>>source>>desti;
        for(i=0;i<node;i++)
        {
            if(((ar[i][source]+ar[i][desti])>rs)&&(ar[i][source]!=1000000000)&&(ar[i][desti]!=1000000000))
                rs=ar[i][source]+ar[i][desti];
        }
        printf("Case %ld: %ld\n",cs++,rs);
    }
}

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

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

Factorization with prime Sieve

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