1049 – One Way Roads

Problem Link : http://www.lightoj.com/volume_showproblem.php?problem=1049


#include <bits/stdc++.h>

#define pii pair <int,int>
#define sc scanf
#define pf printf
#define Pi 2*acos(0.0)
#define ms(a,b) memset(a, b, sizeof(a))
#define pb(a) push_back(a)
#define MP make_pair
#define oo 1<<29
#define dd double
#define ll long long
#define EPS 10E-10
#define ff first
#define ss second
#define MAX 10000
#define CIN ios_base::sync_with_stdio(0); cin.tie(0)
#define SZ(a) (int)a.size()
#define si(a) scanf("%d",&a)
#define sii(a,b) scanf("%d%d",&a,&b)
#define siii(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define loop(i,n) for(int i=0;i<n;i++)
#define REP(i,a,b) for(int i=a;i<b;i++)
#define TEST_CASE(t) for(int z=1;z<=t;z++)
#define PRINT_CASE printf("Case %d: ",z)
#define all(a) a.begin(),a.end()
#define intlim 2147483648
#define inf 1000000
#define rtintlim 46340
#define llim 9223372036854775808
#define rtllim 3037000499
#define ull unsigned long long
#define I int

using namespace std;

bool left_pos[110],right_pos[110];

int main()
{
    ///freopen("in.txt","r",stdin);
    ///freopen("out.txt","w",stdout);
    int t;
    si(t);
    TEST_CASE(t)
    {
        int n,a,b,c;
        int left_cost=0,rigt_cost=0;
        si(n);
        ms(left_pos,0);
        ms(right_pos,0);
        loop(i,n)
        {
            siii(a,b,c);
            if(left_pos[a]==0 && right_pos[b]==0)
            {
                left_pos[a]=right_pos[b]=1;
                left_cost+=c;
            }
            else
            {
                right_pos[a]=left_pos[b]=1;
                rigt_cost+=c;
            }
        }
        PRINT_CASE;
        pf("%d\n",min(left_cost,rigt_cost));
    }

    return 0;
}

Advertisements