Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #517493) | Cod sursa (job #3305816)
#include <fstream>
using namespace std;
ifstream cin("harta.in");
ofstream cout("harta.out");
int a[101];
int b[101];
int cnt[101];
int aux[101][101];
int main()
{
int n,m=0,i,j,k,aux1;
cin>>n;
for(i=1;i<=n;i++){
cin>>a[i]>>b[i];
m+=a[i];
}
cout<<m<<"\n";
for(i=1;i<=n;i++){
for(j=0;j<=100;j++) cnt[j]=0;
for(j=1;j<=n;j++){
if(b[j] && i!=j){
cnt[b[j]]++;
aux[b[j]][cnt[b[j]]]=j;
}
}
for(j=n;j && a[i];j--){
for(k=cnt[j];k && a[i];k--){
aux1=aux[j][k];a[i]--;b[aux1]--;
cout<<i<<" "<<aux1<<"\n";
}
}
}
return 0;
}