Pagini recente » Cod sursa (job #2352282) | Cod sursa (job #218782) | Cod sursa (job #399288) | Cod sursa (job #780220) | Cod sursa (job #3281217)
#include <bits/stdc++.h>
#define L 105
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");
struct MS {
int node, in, out;
};
int n, s;
MS v[L];
bool cmp(const MS &a, const MS &b) {
return a.in > b.in;
}
int increment(int i) {
i++;
if (i > n)
i = 1;
return i;
}
int main() {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i].in >> v[i].out;
v[i].node = i;
s += v[i].in;
}
fout << s << "\n";
sort(v + 1, v + n + 1, cmp);
for (int i = 1; i <= n; i++) {
int j = 1;
while (v[i].in) {
while (v[j].out == 0 || i == j)
j = increment(j);
v[i].in--;
v[j].out--;
fout << v[i].node << " " << v[j].node << "\n";
j = increment(j);
}
}
return 0;
}