Cod sursa(job #1459805)

Utilizator enacheionutEnache Ionut enacheionut Data 10 iulie 2015 19:56:56
Problema Combinari Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i, j=1, K, N, x;
	int *vector;

    FILE *in=fopen("combinari.in","r");
    FILE *out=fopen("combinari.out","w");

	fscanf( in,"%d",&N);
	fscanf( in,"%d",&K);
    fclose(in);

	vector = malloc( (K+3) * sizeof(int));

	for (i=1; i <= K; i++){
        vector[i] = i;
    }
	vector[K+1] = N+1;
	vector[K+2] = 0;

	j = K;
    visit:
	for (i=1; i <= K; i++) {
        fprintf(out, "%d ", vector[i] );
	}
	fprintf( out,"\n");
	if (j > 0){
	    x = j+1;
        goto incr;
    }
	if (vector[1] + 1 < vector[2]){
        vector[1]=vector[1]+1;
        goto visit;
	 }

	j = 2;
    do_more:
	vector[j-1] = j-1;
	x = vector[j] + 1;
	if (x == vector[j+1]){
        j++;
        goto do_more;
    }
	if (j > K) {
        return 0;
	}

    incr:
	vector[j] = x;
	j--;
	goto visit;
}