Ладьялар парады
Шешімді жөнелту
Ұпайлар:
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