Pagini recente » Cod sursa (job #133354) | Cod sursa (job #991045) | Cod sursa (job #1895598) | Cod sursa (job #1343882) | Cod sursa (job #117929)
Cod sursa(job #117929)
#include <stdio.h>
FILE *f=fopen("harta.in","rt");
FILE *g=fopen("harta.out","wt");
#define NMAX 101
int n,di[NMAX],de[NMAX],a[NMAX][NMAX];
long s;
long suma()
{ int i;
for (i=1;i<=n;i++)
s+=di[i]+de[i];
return s;
}
int main()
{ int i,k;
int maxi,imax,maxe,emax;
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d %d",&de[i],&di[i]);
fclose(f);
fprintf(g,"%ld\n",suma()/2);
for (i=1;i<=n;i++)
a[i][i]=1;
for (k=1;k<=s/2;k++)
{ maxi=0;
maxe=0;
for (i=1;i<=n;i++)
if (di[i]>maxi) { maxi=di[i];
imax=i;
}
for (i=1;i<=n;i++)
if (de[i]>maxe&&a[i][imax]==0)
{ maxe=de[i];
emax=i;
}
fprintf(g,"%d %d\n",emax,imax);
a[imax][emax]=a[emax][imax]=1;
di[imax]--;
de[emax]--;
}
fclose(g);
return 0;
}