Cod sursa(job #180006)

Utilizator scvalexAlexandru Scvortov scvalex Data 16 aprilie 2008 15:53:21
Problema Taramul Nicaieri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

int N,
    in[100],
    out[100];

bool did[100][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) && (out[i] > 0); ++j)
			if ((in[j] > 0) && !did[i][j] && (i != j)) {
				fprintf(fo, "%d %d\n", i+1, j+1);
				--out[i];
				--in[j];
				did[i][j] = did[j][i] = true;
			}
	fclose(fo);

	return 0;
}