Pagini recente » Cod sursa (job #1864771) | Cod sursa (job #1708289) | Cod sursa (job #1231105) | Cod sursa (job #1335299) | Cod sursa (job #1875403)
#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;
}
aux a[105];
int in[105], out[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){
if (in[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;
}