Cod sursa(job #1087830)

Utilizator dinuvldVlad Dinu dinuvld Data 19 ianuarie 2014 21:53:45
Problema Lacate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
/*Se considera o comisie formata din n<500 persoane care trebuie sa pastreze intr-un seif subiectele de la ex de admitere.
sa se determie numarul minim de lacate lmin necesar inchiderii seifului astfel incat sa existe o distributie a cheilor lor
care sa ideplineaasca urmatoarele conditii:
-oricare 2 persoane detin axelasi numar de chei
-fiecare persoana detine chei de la lacate diferite
-toate lacatele seifului de or putea deschide doar in prezenta oricarui grup de cel putin n-1 persoane
Pentru un lacar pot exista mai multe x\chie care sa-l deschida. Nicio cheie nu poate deschide 2 lacate diferite. Lacatele sunt
numerotate de la 1 la lmin. Sa se determine numarul minim de lacae, numarul total de chei distribuite si o repartizare a cheilor 
care respecta conditiile problemei.
*/
#include <fstream>

using namespace std;

ifstream input("lacate.in");
ofstream output("lacate.out");

int main() {
	int n;
	input >> n;
	output << n*(n - 1) / 2 << " " << n - 1 << "\n";
	int x = 1;
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= n - 1; ++j) {
			output << x << " ";
			++x;
			if (2 * x>n*(n - 1)) {
				x = 1;
			}
		}
		output << "\n";
	}
	return 0;
}