Pagini recente » Cod sursa (job #3157019) | Cod sursa (job #2821289) | Cod sursa (job #1301562) | Cod sursa (job #237958) | Cod sursa (job #1443219)
//Dragan Andrei Gabriel
//Universitatea din Bucuresti
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int N, S, nod, M[101][101];
int X[105], Y[105], V[105];
int main()
{
freopen("harta.in","r",stdin);
freopen("harta.out","w",stdout);
scanf("%d",&N);
for (int i = 1; i <= N; i++)
{
scanf("%d %d", &X[i], &Y[i]);
S += X[i];
}
printf("%d\n", S);
for (int i = 1; i <= N; i++)
{
memset(V, 0, sizeof(V));
for (int j = 1; j <= N; j++)
if (Y[j] && i != j)
M[Y[j]][++V[Y[j]]] = j;
for (int j = N; j && X[i]; j--)
for (int k = V[j]; k && X[i]; k--)
{
nod = M[j][k];
X[i]--;
Y[nod]--;
printf("%d %d\n", i, nod);
}
}
return 0;
}