Arbitrage

🧩 Syntax:
#include<bits/stdc++.h>
#define ll long long

using namespace std;

void vout(vector<vector<float>>&v,ll n)
{
    for(ll i=1;i<n;i++)
    {
        for(ll j=1;j<n;j++)
        {
            cout<<v[i][j]<<" ";
        }
        cout<<endl;
    }
}
void floyd_warshall(vector<vector<float>>&cost)
{
    for(ll k=1;k<cost.size();k++)
    {
        for(ll i=1;i<cost.size();i++)
        {
            for(ll j=1;j<cost.size();j++)
                cost[i][j]=max(cost[i][j],cost[i][k]*cost[k][j]);
        }
    }
}
int main()
{
    ll i,j,k,n=1,m,cs=1;
    string x,y;
    float z;
    string s;
    map<string,ll>mp;
   while(n)
   {
       cin>>n;
       if(n==0)continue;
       for(ll i=1;i<=n;i++)
    {
        cin>>s;
        mp[s]=i;
    }
    cin>>m;
    vector<vector<float>>cost(n+1,vector<float>(n+1,0));
    for(ll i=1;i<=n;i++)
        cost[i][i]=1;
    for(ll i=0;i<m;i++)
    {
        cin>>x>>z>>y;
        cost[mp[x]][mp[y]]=z;
    }
    floyd_warshall(cost);
    //vout(cost,cost.size());
    ll flg=0;
    for(ll i=1;i<=n;i++)
    {
        if(cost[i][i]<=1)
            flg=1;
    }
    if(!flg)
        cout<<"Case "<<cs<<": YES"<<endl;
    else
        cout<<"Case "<<cs<<": NO"<<endl;

        cs++;
   }
}