Cod sursă (job #784843)

Utilizator avatar MateiX21 Haba Matei MateiX21 IP ascuns
Problemă Director Compilator cpp-32 | 0,65 kb
Rundă Arhiva de probleme Status evaluat
Dată 28 aug. 2024 20:54:22 Scor 100
#include <fstream>
using namespace std;
ifstream cin("director.in");
ofstream cout("director.out");
int n,k;
const long long mod=1e9+7;
long long add[10002],dp[27][10002];
int main()
{
    cin>>n>>k;
    string d;
    cin>>d;

    add[0]=1;
    for(int i=1; i<=n; i++)
    {
        long long c=(d[i-1]-'a');
        for(int j =k; j>0; j--)
        {
            long long p=dp[c][j];
            add[j]-=p;
            if(add[j]<0)
                add[j]+=mod;
            dp[c][j]=add[j-1];
            add[j]+=dp[c][j];
            if(add[j]>mod)
                add[j]-=mod;
        }
    }
    cout<<add[k];

    return 0;
}