Cod sursa(job #1328811)

Utilizator Vali_DeaconuVali Deaconu Vali_Deaconu Data 28 ianuarie 2015 19:46:36
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
using namespace std;

FILE *fin = fopen ("expozitie.in", "r");
FILE *fout = fopen ("expozitie.out", "w");

int tsum[126000];
int n, d, m;
int x[505];
int f[505];
int sol;

void back (int k) {
    if (k > n) {
        int sum=0;
        for (int i=1; i<=n; ++i)
            sum += x[i];
        if (tsum[sum] == 0) {
            /* for (int i=1; i<=n; ++i)
                fprintf(fout, "%d ", x[i]);
            fprintf(fout, "\n"); */
            // Astea erau daca trebuiau afisate solutiile
            sol++;
            tsum[sum] = 1;
        }
    } else {
        for (int i=1; i<=d; ++i) {
            x[k] = i;
            if (f[i] <= m) {
                f[i] ++;
                back (k+1);
                f[i] --;
            }
        }
    }
}

int main()
{
    fscanf (fin, "%d %d %d", &n, &d, &m);
    back (1);
    return 0;
}