Cod sursa(job #7033)

Utilizator bughyBondane Bogdan bughy Data 21 ianuarie 2007 11:58:56
Problema Diviz Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 1.11 kb
#include <fstream.h>
#include <string.h>

#define input "diviz.in"
#define output "diviz.out"
#define dimmax 210

        ifstream fin(input);
        ofstream fout(output);
        
long k,a,b,sir[dimmax],n,rezultat,aux[dimmax*1000];
char linie[dimmax];

void back(long l,long nr,long poz);

int main()
{
        long i,j;
        fin>>k>>a>>b;
        fin.get();
        fin.get(linie,dimmax);
        for(i=0;i<strlen(linie);++i)
        {
           n++; 
           sir[n]=linie[i]-'0';
        }
        for(i=1;i<=n-a+1;++i)
          if(sir[i])
            back(2,sir[i],i);
            
        fout<<rezultat;
        
        return 0;
}    

void back(long l,long nr,long poz)
{
    if(nr%k==0&&l>a)
    {
       int ind=1;
       for(int j=1;j<=aux[0];j++)
          if(aux[j]==nr)
          {
             ind=0;
             break;
          }      
       if(ind)
       {
       ++rezultat;
       aux[++aux[0]]=nr;
       }    
     //  fout<<nr<<"\n";
     }    
       
    for(int i=poz+1;i<=n;i++)
        if(l<=b)
           back(l+1,nr*10+sir[i],i);
}