Pagini recente » Cod sursa (job #254110) | Cod sursa (job #1789320) | Cod sursa (job #2499420) | Cod sursa (job #1398890) | Cod sursa (job #1525388)
#include <cstdio>
#include <bitset>
using namespace std;
#define Nmax 260
#define Cmax 32642
FILE *f = fopen ( "lacate.in", "r" );
FILE *g = fopen ( "lacate.out", "w" );
bitset < Nmax > Used[Cmax], Rel[Nmax];
int cate[Nmax];
int main(){
int N, Chei, Lacate;
fscanf ( f, "%d", &N );
Chei = N-1;
Lacate = N*(N-1) >> 1;
for ( int i = 1; i <= Lacate; ++i ){
int pred;
for ( int j = 1; j <= N; ++j ){
if ( cate[j] == Chei ) continue;
cate[j]++;
Used[j][i] = 1;
pred = j;
break;
}
for ( int j = 1; j <= N; ++j ){
if ( j == pred || cate[j] == Chei || Rel[j][pred] ) continue;
cate[j]++;
Rel[j][pred] = Rel[pred][j] = 1;
Used[j][i] = 1;
break;
}
}
fprintf ( g, "%d %d\n", Lacate, Chei );
for ( int i = 1; i <= N; ++i ){
for ( int j = 1; j <= Lacate; ++j ){
if ( Used[i][j] )
fprintf ( g, "%d ", j );
}
fprintf ( g, "\n" );
}
return 0;
}