Cod sursa(job #7098)

Utilizator varuvasiTofan Vasile varuvasi Data 21 ianuarie 2007 12:29:24
Problema Diviz Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.8 kb
#include <stdio.h>
#include <string.h>

#define MaxN 63
#define MOD 30103

int K, A, B;
long long bits, N;
char nr[MaxN];
int nrsol;

int main()
{
    FILE *fin = fopen("diviz.in", "rt");
    fscanf(fin, "%d %d %d\n%s", &K, &A, &B, &nr);
    fclose(fin);
    
    for (long long i = 1; i < (1 << strlen(nr)); i++)
    {
        long long Nr = 0, digits = 0;
        for (int bit = 0; bit < strlen(nr); bit++)
            if (i & (1 << bit))
            {
                Nr *= 10;
                Nr += nr[bit] - '0';
                digits ++;
            }
	if (digits >= A && digits <= B)
                if (Nr % K == 0)
                     nrsol++;
    }
    
    FILE *fout = fopen("diviz.out", "wt");
    fprintf(fout, "%d", nrsol);
    fclose(fout);
    
    return 0;
}