Cod sursa(job #1904403)

Utilizator Mihai9Oniga Mihai Mihai9 Data 5 martie 2017 15:27:55
Problema Taramul Nicaieri Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul II Marime 0.47 kb
#include <fstream>
#include <cstring>
using namespace std;
int n,m,i,j,k,od,a[101],b[101],q[101],l[101][101];
ifstream r("harta.in");
ofstream w("harta.out");
int main(){
 in>>n;
 for(i=1;i<=n;++i){r>>a[i]>>b[i];m+=a[i];}
 w<<m<<"\n";
 for(i=1;i<=n;++i){
  memset(q,0,sizeof(q));
  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){od=l[j][k];a[i]--;b[od]--;w<<i<<" "<<od<<"\n";}
  }
 }
 return 0;
}