Pagini recente » Cod sursa (job #279992) | Cod sursa (job #279946)
Cod sursa(job #279946)
#include <stdio.h>
#include <stdlib.h>
int n,m,i,j,ind[101],a[101],b[101];
int comp(const void *n1,const void *n2){
return (b[*((int*)n1)]-b[*((int*)n2)]);
}
int main(){
freopen("harta.in","r",stdin); freopen("harta.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i){scanf("%d %d",&a[i],&b[i]);m+=a[i];ind[i]=i;}
printf("%d\n",m);
qsort(ind+1,n,sizeof(int),comp);
j=1;
while (j<=n){
for (i=n;i&&a[ind[j]];--i)
if (i!=j){
b[ind[i]]--;a[ind[j]]--;
printf("%d %d\n",ind[i],ind[j]);
}
if (a[ind[j]]==0)j++;
}
return 0;
}