Pagini recente » Cod sursa (job #3033078) | Cod sursa (job #3245291) | Cod sursa (job #600598) | Cod sursa (job #704685) | Cod sursa (job #180065)
Cod sursa(job #180065)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int N,
in[100],
out[100];
vector<int> v[100];
int main(int argc, char *argv[])
{
FILE *fi = fopen("harta.in", "r");
fscanf(fi, "%d", &N);
int tot(0);
for (int i(0); i < N; ++i) {
fscanf(fi, "%d %d", out+i, in+i);
tot += out[i];
}
fclose(fi);
FILE *fo = fopen("harta.out", "w");
fprintf(fo, "%d\n", tot);
for (int i(0); i < N; ++i) {
for (int j(0); j < N; ++j)
v[j].clear();
for (int j(0); j < N; ++j)
if ((in[j] > 0) && (i != j)) {
v[in[j]].push_back(j);
}
for (int j = N-1; j >= 0; --j)
while (v[j].size() > 0) {
if (out[i] == 0)
break;
int aux = v[j].back();
fprintf(fo, "%d %d\n", i + 1, aux + 1);
--in[aux];
--out[i];
v[j].pop_back();
}
}
fclose(fo);
return 0;
}