Pagini recente » Cod sursa (job #891404) | Cod sursa (job #1698905) | Cod sursa (job #323338) | Cod sursa (job #2247903) | Cod sursa (job #3142239)
#include <cstdio>
#include <algorithm>
using namespace std;
struct aux {
int val, poz;
};
bool cmp(aux a, aux b) {
if(a.val == b.val)
return a.poz > b.poz;
return a.val > b.val;
}
int in[105], out[105];
aux a[105];
int main()
{
freopen("harta.in", "r", stdin);
freopen("harta.out", "w", stdout);
int n, s = 0;
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
scanf("%d%d", &in[i], &out[i]);
s += in[i];
}
printf("%d\n", s);
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= n; ++j)
a[j] = {out[j], j};
sort(a + 1, a + n + 1, cmp);
for(int j = 1; j <= n && in[i]; ++j)
if(a[j].poz != i){
printf("%d %d\n", i, a[j].poz);
out[a[j].poz]--;
in[i]--;
}
}
return 0;
}