Pagini recente » Cod sursa (job #204978) | Cod sursa (job #1948565) | Cod sursa (job #2065813) | Cod sursa (job #2315437) | Cod sursa (job #3304558)
#include <bits/stdc++.h>
using namespace std;
#define ST_DIO 0
#if ST_DIO
#define fin cin
#define fout cout
#else
ifstream fin("harta.in");
ofstream fout("harta.out");
#endif // ST_DIO
struct Nod {
int in, out;
} gr[102];
int n, i, j, nr, ord[102];
static inline bool Cmp(int a, int b) {
return gr[a].in > gr[b].in || (gr[a].in == gr[b].in && gr[a].out > gr[b].out);
}
int main() {
if(ST_DIO) ios_base::sync_with_stdio(false);
fin.tie(nullptr);
fout.tie(nullptr);
fin >> n;
for(i = 1; i <= n; i++) fin >> gr[i].in >> gr[i].out;
for(i = 1; i <= n; i++) nr += gr[i].in;
fout << nr << "\n";
for(i = 1; i <= n; i++) ord[i] = i;
for(i = 1; i <= n; i++) {
sort(ord + 1, ord + n + 1, Cmp);
for(j = 1; j <= n; j++) {
if(i != ord[j] && gr[ord[j]].in > 0 && gr[i].out > 0) {
gr[ord[j]].in--;
gr[i].out--;
fout << ord[j] << " " << i << "\n";
}
}
}
return 0;
}