Pagini recente » Cod sursa (job #2712008) | Cod sursa (job #1647915) | Cod sursa (job #1390212) | Cod sursa (job #839278) | Cod sursa (job #1087830)
/*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;
}