Cod sursa(job #959509)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 8 iunie 2013 13:22:06
Problema Nowhere-zero Scor 0
Compilator cpp Status done
Runda Infoarena Cup 2013 Marime 1.15 kb
#include <fstream>
#include <vector>
#include <cstdlib>
#include <cstring>
#define NM 100010

using namespace std;

ifstream f("nowhere-zero.in");
ofstream g("nowhere-zero.out");

int N, M;
double z;
int i, j;
int D[NM];
int X[NM], Y[NM];
int Sign[NM];

void Check ()
{
    int i;
    for (i=1; i<=N; i++)
        D[i]=0;

    for (i=1; i<=M; i++)
    {
        D[X[i]]-=Sign[i];
        D[Y[i]]+=Sign[i];
    }

    for (i=1; i<=N; i++)
        if (D[i]!=0)
            return;

    for (i=1; i<=M; i++)
        if (Sign[i]>0)
            g << X[i] << ' ' << Y[i] << ' ' << Sign[i] << '\n';
        else
            g << Y[i] << ' ' << X[i] << ' ' << -Sign[i] << '\n';

    exit(0);
}

void Back (int poz)
{
    if (poz>M)
    {
        Check();
        return ;
    }

    for (int i=-3; i<=3; i++)
    {
        if (i==0) continue;
        Sign[poz]=i;
        Back(poz+1);
    }

    return ;
}

int main ()
{
    f >> N >> M;
    for (i=1; i<=N; i++)
        f >> z >> z;

    for (i=1; i<=M; i++)
        f >> X[i] >> Y[i];

    Back(1);


    f.close();
    g.close();

    return 0;
}