Cod sursa(job #279992)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 13 martie 2009 09:51:47
Problema Taramul Nicaieri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
#include <stdlib.h>
int n,m,i,j,k,nod,a[101],b[101],q[101],l[101][101];
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];}
  printf("%d\n",m);
  for (i=1;i<=n;++i){
    for (j=1;j<=n;++j)if (b[j]&&i!=j){l[b[j]][++q[b[j]]]=j;}
    for (j=n;j&&a[i];--j){
      for (k=q[j];k&&a[i];--k){
        nod=l[j][k]; a[i]--; b[nod]--;
        printf("%d %d\n",i,nod);
      }
      q[j]=k;
    }
  }
return 0;
}