Pagini recente » Cod sursa (job #2243728) | Cod sursa (job #415209) | Cod sursa (job #1902629) | Cod sursa (job #2634617) | Cod sursa (job #130727)
Cod sursa(job #130727)
#include <stdio.h>
int n;
typedef struct
{
int in, out;
} noduri;
noduri v[100];
void BF()
{
int i, p, u, c[100];
p = u = 1;
c[1] = 1;
while (p <= u)
{
for (i = 1; i <= n; i++)
if (i != c[p] && (v[i].in && (v[c[p]].out) || (v[i].out && v[c[p]].in)))
{
c[++u] = i;
if (v[i].in && v[c[p]].out)
{
v[c[p]].out--;
v[i].in--;
printf("%d %d\n",c[p], i);
}
else
{
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;
}