Pagini recente » Cod sursa (job #3192289) | Cod sursa (job #63684) | Cod sursa (job #1720768) | Profil Liviu_Andrei | Cod sursa (job #130731)
Cod sursa(job #130731)
#include <stdio.h>
int n;
typedef struct
{
int in, out;
} noduri;
noduri v[102];
void BF()
{
int i, p, u, c[1000];
for (i = 1; i <= n; i++) c[i] = i;
p = 1; u = n;
c[1] = 1;
while (p <= u)
{
for (i = c[p]+1; i <= n; i++)
if (i != c[p] && ((v[i].in && v[c[p]].out) ||(v[i].out && v[c[p]].in)))
{
if (v[i].in && v[c[p]].out)
{
c[++u] = i;
v[c[p]].out--;
v[i].in--;
printf("%d %d\n", c[p], i);
}
else
{
c[++u] = i;
v[c[p]].in--;
v[i].out--;
printf("%d %d\n", i, c[p]);
}
}
p++;
}
}
int main()
{
freopen("harta.in","r",stdin);
freopen("harta.out","w",stdout);
int i, x, y, s = 0;
scanf("%d",&n);
for (i = 1; i <= n; i++)
{
scanf("%d %d", &x, &y);
v[i].in = y;
v[i].out = x;
s += x;
}
printf("%d\n",s);
BF();
return 0;
}