Ладьялар парады


Шешімді жөнелту

Ұпайлар: 100 (partial)
Уақыт шектеуі: 1.0s
Жад шектеуі: 256M

Author:
Problem types
Рұқсат етілген тілдер
Assembly, Awk, Brain****, C, C++, Go, Java, Kotlin, Pascal, Perl, PHP, Python, Sed, Text

Ладья — шахматтағы фигура. Бір жүрісте ол кез келген клеткалар санына көлденең (солға/оңға) немесе тік (жоғары/төмен) бағытта, яғни бір жолақта немесе бір бағанда ғана қозғала алады.

Екі ладья бір-біріне шабуыл жасайды, егер олар бір жолақта немесе бір бағанда тұрса (яғни ладья жүрісімен бір-біріне жете алса).

Екі сан берілген: \(n\) және \(k\). Сіздің міндетіңіз — \(n \times n\) шахмат тақтасына \(k\) ладьяны ешқайсысы шабуыл жасамайтындай етіп орналастырудың санын анықтау.

Енгізу

Жалғыз жолда екі бүтін сан берілген: \(n\) және \(k\) (\(1 \le n \le 10^5\), \(0 \le k \le n\)).

Шығару

Бір бүтін санды шығарыңыз — \(n \times n\) тақтаға \(k\) ладьяны ешқайсысы шабуыл жасамайтындай етіп орналастырудың саны \(10^9 + 7\) модулі бойынша.

Бағалау жүйесі

Топ Қосымша шектеулер Ұпайлар Қажетті топтар
1 \(k \le 2\) 15
2 \(k = n\) 15
3 \(n \le 2000\) 20
4 Толық шектеулер 50 1, 2, 3

Мысалдар

Енгізу 1
3 2
Жауап 1
18
Енгізу 2
4 4
Жауап 2
24
Енгізу 3
5 0
Жауап 3
1