제출 #558788

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

#define mod 1000000007

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

long solve(int nw,long comp)
{
    if(nw == 0) return 0;
    long &val = dp[nw][comp];
    if(val != -1) return val;
    if(nw == 1) return val = (comp == 1)? 1 : 0;
    if(nw == s || nw == t)
        return val = (solve(nw - 1, comp - 1) + solve(nw - 1, comp)) % mod;
    long del = 0;
    if(nw > s) del++;
    if(nw > t) del++;
    return val = ( comp * solve(nw - 1, comp + 1) + (comp - del) * solve(nw - 1, comp - 1) ) % mod;
}

int main()
{
    memset(dp, -1, sizeof(dp));
    scanf("%d %d %d",&n,&s,&t);
    printf("%ld\n",solve(n,1));
    return 0;
}

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

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:26:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |     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...