Pagini recente » Cod sursa (job #2710771) | Cod sursa (job #1931217) | Cod sursa (job #999000) | Cod sursa (job #1865663) | Cod sursa (job #959509)
Cod sursa(job #959509)
#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;
}