Pagini recente » Cod sursa (job #1048382) | Cod sursa (job #1429590) | Cod sursa (job #2518784) | Cod sursa (job #2977508) | Cod sursa (job #183702)
Cod sursa(job #183702)
#include<stdio.h>
int outt[102],inn[102],cmm,n,i,j,ok,a[102][102],s;
int main()
{
freopen("harta.in","r",stdin);
freopen("harta.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld %ld",&outt[i],&inn[i]);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if (i!=j)
{
if (!outt[i]) break;
if (inn[j]>0)
{
inn[j]--;
outt[i]--;
a[i][j]=1;
}
}
}
while (outt[n])
{
ok=0;
for(i=1;i<=n;i++)
if (!a[n][i])
{
for(j=1;j<n;j++)
if (a[j][i])
{
ok=1;
a[j][i]=0;
a[j][n]=1;
a[n][i]=1;
outt[n]--;
inn[n]--;
break;
}
if (ok) break;
}
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
s+=a[i][j];
printf("%ld\n",s);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if (a[i][j]) printf("%ld %ld\n",i,j);
return 0;
}