Submission #1349855

#TimeUsernameProblemLanguageResultExecution timeMemory
1349855SSKMF캥거루 (CEOI16_kangaroo)C++20
100 / 100
7 ms14172 KiB
#include <bits/stdc++.h>
using namespace std;

const int mod(1000000007);
int modalitati[2001][2002];

int main ()
{
    ios :: sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int lungime , inceput , sfarsit;
    cin >> lungime >> inceput >> sfarsit;

    modalitati[0][0] = 1;
    for (int indice = 1 ; indice <= lungime ; indice++)
    {
        if (indice == inceput || indice == sfarsit) {
            for (int numar_componente = 1 ; numar_componente <= indice ; numar_componente++)
                { modalitati[indice][numar_componente] = (modalitati[indice - 1][numar_componente - 1] + modalitati[indice - 1][numar_componente]) % mod; }
        }
        else {
            for (int numar_componente = 1 ; numar_componente <= indice ; numar_componente++)
                { modalitati[indice][numar_componente] = (1LL * modalitati[indice - 1][numar_componente - 1] * (numar_componente - (inceput < indice ? 1 : 0) - (sfarsit < indice ? 1 : 0)) + 1LL * modalitati[indice - 1][numar_componente + 1] * numar_componente) % mod; }
        }
    }
    
    cout << modalitati[lungime][1];
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...