Cod sursa(job #2539556)

Utilizator NashikAndrei Feodorov Nashik Data 5 februarie 2020 22:54:53
Problema Diviz Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
//#include <iostream>
#include <fstream>
using namespace std;
int d[105][105][105];
int main()
{
    ifstream cin("diviz.in");
    ofstream cout("diviz.out");
    int k,n,a,b;
    string s;
    cin>>k>>a>>b;
    cin.get();
    cin>>s;
    n=s.size();
    d[0][(s[0]-'0')%k][1]=1;
    for(int i=1;i<n;i++){
        for(int j=0;j<=k;j++){
            for(int x=0;x<=k;x++){
                d[i][j][x]+=d[i-1][j][x];
            }
        }
        for(int j=0;j<k;j++){
            for(int x=1;x<=k;x++){
            d[i][(j*10+s[i]-'0')%k][x]+=d[i-1][j][x-1];
            }
        }
        d[i][(s[i]-'0')%k][1]++;
    }
    long long sum=0;
    /**for(int i=0;i<n;i++){
        for(int j=0;j<=k;j++){
            cout<<i<<" "<<j<<"->";
            for(int x=0;x<=k;x++){
                cout<<d[i][j][x]<<" ";
            }
            cout<<"\n";
        }
    }
    */
    for(int i=a;i<=b;i++){
        sum+=d[n-1][0][i];
    }
    cout<<sum;
    return 0;
}