λ°±μ€ 2482
λ¬Έμ
μμ νννλ κΈ°λ³Έ μμλ₯Ό μ΄μ©νμ¬ νμν μ μλ λͺ¨λ μ μ€μμ λνμ μΈ μμ κ³ λ¦¬ λͺ¨μμΌλ‘ μ°κ²°νμ¬ λνλΈ κ²μ μμνμ΄λΌκ³ νλ€. λ―Έκ΅μ νκ° λ¨Όμ (Munsell)μ΄ κ΅μ‘μ©μΌλ‘ κ³ μν 20μμνμ΄ λ리 μλ €μ Έ μλ€. μλ κ·Έλ¦Όμ λ¨Όμ μ 20μμνμ 보μ¬μ€λ€.

κ·Έλ¦Ό 1. λ¨Όμ μ 20μμν
μμνμμ μΈμ ν λ μμ λΉμ·νμ¬ μΈλ» 보면 ꡬλ³νκΈ° μ΄λ ΅λ€. μ κ·Έλ¦Όμ 20μμνμμ λ€νμ λΉ¨κ°κ³Ό μΈμ νκ³ λ μ£Όν©κ³Όλ μΈμ νλ€. νμμ μ°λ, λ Ήμκ³Ό μΈμ νλ€. μκ°μ λλΉ ν¨κ³Όλ₯Ό μ»κΈ° μνμ¬ μΈμ ν λ μμ λμμ μ¬μ©νμ§ μκΈ°λ‘ νλ€.
μ£Όμ΄μ§ μμνμμ μκ°μ λλΉ ν¨κ³Όλ₯Ό μ»κΈ° μνμ¬ μλ‘ μ΄μνμ§ μμ μλ€μ μ ννλ κ²½μ°μ μλ₯Ό μκ°ν΄ 보μ. λ¨Όμ μ 20μμνμμ μκ°μ λλΉ ν¨κ³Όλ₯Ό μ»μ μ μκ² 10κ°μ μμ μ ννλ κ²½μ°μ μλ 2μ΄μ§λ§, μκ°μ λλΉ ν¨κ³Όλ₯Ό μ»μ μ μκ² 11κ° μ΄μμ μμ μ νν μ μμΌλ―λ‘ μ΄ κ²½μ°μ μλ 0μ΄λ€.
μ£Όμ΄μ§ μ μ Nκ³Ό Kμ λνμ¬, Nκ°μ μμΌλ‘ ꡬμ±λμ΄ μλ μμν (Nμμν)μμ μ΄λ€ μΈμ ν λ μλ λμμ μ ννμ§ μμΌλ©΄μ μλ‘ λ€λ₯Έ Kκ°μ μμ μ ννλ κ²½μ°μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
νμ΄
μ«μμ λΆν λ‘ νμλ€.
μμνμ΄ μνμΌλ‘ λμ΄μλ€λ μ μ μ£Όμνκ³ νλ©΄ λλ€.
μλ‘ λ¨μ΄μ Έμλ Kκ°μ μμμ κ²½μ°μ μλ₯Ό μ΄ Nκ°μ μμμμ λ½μμΌ νλ λ¬Έμ μ΄λ€.
μ΄λ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ (μ΄ 6κ°μ μμμμ 3κ°λ₯Ό μ ννλ κ²½μ°λ₯Ό λνλ΄λ©΄)
1. 무쑰건 첫λ²μ§Έ μμ μ ννλ κ²½μ° (νΉμ μμ κΈ°μ€μΌλ‘ μ νμΌλ‘ λνλμλ)
2. 무쑰건 λ§μ§λ§ μμ μ ννλ κ²½μ° (νΉμ μμ κΈ°μ€μΌλ‘ μ νμΌλ‘ λνλμλ)
3. 첫λ²μ§Έ μ, λ§μ§λ§ μμ μ ννμ§ μλ κ²½μ°
λ€μκ³Ό κ°μ΄ μΈκ°μ§ μΌμ΄μ€λ‘ λλ μ μλ€. (Oκ° μμ μ ν, Xκ° μμ λΉμ ν)
1, 3λ² μΌμ΄μ€λ N - Kκ°μ μμμ 무쑰건 Kκ°μ μ«μλ‘ λΆν νλ κ²½μ°
2λ² μΌμ΄μ€λ N - K κ°μ μμμ 무쑰건 K+1κ°μ μ«μλ‘ λΆν νλ κ²½μ°μ΄λ€.
λͺ¨λ κ²½μ°μ μλ₯Ό λ€ λν΄μ£Όλ©΄ λλ€.
νΉμ ν μ«μλ₯Ό Kκ°λ‘ λΆν νλ κ²½μ°μ μλ DPλ₯Ό ν΅ν΄ μ½κ² ꡬν μ μλ€.
#include <iostream>
#define ll long long
#define MODNUM 1000000003
using namespace std;
ll N, K, dp[1001][1001];
int main() {
cin>>N>>K;
for(int i=1; i<=N; i++)
for(int j=1; j<=N; j++) {
if(i == j) dp[i][j] = 1;
else {
dp[i][j] = (dp[i-1][j] + dp[i-1][j-1])%MODNUM;
}
}
cout<<(dp[N-K][K]*2 + dp[N-K][K+1])%MODNUM;
}