제출 #554293

#제출 시각아이디문제언어결과실행 시간메모리
554293hibiki캥거루 (CEOI16_kangaroo)C++11
100 / 100
53 ms32372 KiB
#include<bits/stdc++.h>
using namespace std;

#define MOD 1000000007

int n,s,t;
long dp[2020][2020];

long solve(int lv,int g)
{
    if(lv==0)return 0;
    long &now = dp[lv][g];
    if(now!=-1)return now;
    if(lv==1)return now=(g==1?1:0);
    if(lv==s||lv==t)
        return now=(solve(lv-1,g-1)+solve(lv-1,g))%MOD;
    return now=(solve(lv-1,g+1)*g + solve(lv-1,g-1)*(g-(lv>s?1:0)-(lv>t?1:0)))%MOD;
}

main()
{
    // freopen("kangaroo.in","r",stdin);
    // freopen("kangaroo.out","w",stdout);
    memset(dp,-1,sizeof(dp));
    scanf("%d %d %d",&n,&s,&t);
    printf("%ld\n",solve(n,1));
}

컴파일 시 표준 에러 (stderr) 메시지

kangaroo.cpp:20:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   20 | main()
      | ^~~~
kangaroo.cpp: In function 'int main()':
kangaroo.cpp:25:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |     scanf("%d %d %d",&n,&s,&t);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...