Pagini recente » Cod sursa (job #2988125) | Cod sursa (job #841973) | Cod sursa (job #2763851) | Cod sursa (job #180681) | Cod sursa (job #1445795)
#include <iostream>
#include <fstream>
#include <cstring>
#define NMAX 110
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");
int n, m;
int gri[NMAX], gro[NMAX];
int nr[NMAX];
int mat[NMAX][NMAX];
int main()
{
fin >> n;
for (int i = 1; i <= n; ++i)
{
fin >> gro[i] >> gri[i];
m += gro[i];
}
fout << m << "\n";
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
{
if (i != j && gri[j])
{
mat[gri[j]][++nr[gri[j]]] = j;
}
}
for (int j = n; j > 0; --j)
{
int cnt = nr[j];
while (gro[i] && cnt)
{
fout << i << " " << mat[j][cnt] << "\n";
gro[i]--;
gri[mat[j][cnt]]--;
cnt--;
}
}
memset(nr, 0, sizeof(nr));
}
return 0;
}