Cod sursa(job #794965)

Utilizator andunhillMacarescu Sebastian andunhill Data 7 octombrie 2012 13:42:51
Problema Balanta Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include<fstream>
#include<iostream>
#include<ctime>
using namespace std;

clock_t start=clock();

ifstream f("balanta.in");
ofstream g("balanta.out");

int N, M;
bool safe_heavy[1025];
bool safe_light[1025];
int A[1025], B[1025];

int main()
{   int i, j, k, v;
    int ans = 0;

    f>>N>>M;
    for(i = 1; i <= M; i++)
    {   f>>k;
        for(j = 1; j <= k; j++)
            f>>A[j];
        for(j = 1; j <= k; j++)
            f>>B[j];
        f>>v;

        if(v == 0)
            for(j = 1; j <= k; j++)
                safe_heavy[A[j]] = safe_heavy[B[j]] = safe_light[A[j]] = safe_light[B[j]] = true;
        else
            if(v == 1)
                for(j = 1; j <= k; j++)
                {   safe_heavy[B[j]] = true;
                    safe_light[A[j]] = true;
                }
            else
                for(j = 1; j <= k; j++)
                {   safe_heavy[A[j]] = true;
                    safe_light[B[j]] = true;
                }
    }
    for(i = 1, j = 0, k = 0; i <= N; i++)
    {   if(safe_heavy[i]) j++;
        if(safe_light[i]) k++;
    }
    if(j == N - 1)
        for(i = 1; i <= N; i++) if(!safe_heavy[i]) ans = i;
    else if(k == N - 1)
        for(i = 1; i <= N; i++) if(!safe_light[i]) ans = i;
    g<<ans;
    cout << 1.0*(clock()-start)/(1.0*CLOCKS_PER_SEC) << '\n';

    f.close();
    g.close();
    return 0;
}