Pagini recente » Cod sursa (job #1174760) | Cod sursa (job #1443985)
#include <fstream>
#define maxn 105
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");
int n, x, y, sum;
int in[maxn], out[maxn], v[maxn];
int a[maxn][maxn];
int main()
{
int l=1;
fin >> n;
for(int i=1; i<=n; i++)
{
fin >> x >> y;
out[l]=x;
in[l++]=y;
sum+=y;
}
fout << sum << '\n';
for(int i=1; i<=n; i++)
{
for(int t=1; t<=n; t++)
{
v[t]=0;
}
for(int j=1; j<=n; j++)
{
if(i!=j && in[j])
{
a[in[j]][++v[in[j]]]=j;
}
}
for(int j=n; j>0; j--)
{
if(!out[i])
break;
for(int k=v[j]; k>0; k--)
{
if(!out[i])
break;
int aux=a[j][k];
out[i]--;
in[aux]--;
fout << i << ' ' << aux << '\n';
}
}
}
return 0;
}