03. Количество способов#
| 🎯 Уровень | 🟠 Middle |
| 🔗 Источник | Codeforces 466C — Number of Ways |
| 📊 Сложность | 1700 |
| 🏷️ Темы | префиксные суммы |
📝 Условие#
Сколькими способами можно разрезать массив на три непустые непрерывные части с равными суммами?
📥 Входные данные#
В первой строке число n (1 ≤ n ≤ 5·10⁵). Во второй — n целых чисел (|a_i| ≤ 10⁹).
📤 Выходные данные#
Одно число — количество способов разрезать массив на три части с равными суммами.
🧪 Тесты#
Тест 1#
Ввод:
5
1 2 3 0 3
Вывод:
2
Тест 2#
Ввод:
4
0 1 -1 0
Вывод:
1
Тест 3#
Ввод:
2
4 1
Вывод:
0
Тест 4#
Ввод:
5
0 0 0 0 0
Вывод:
6
Заметка
Оригинальное условие и проверка решения на всех тестах — по ссылке на источник.
💡 Подсказка#
Открыть, если застрял(а) больше чем на 20 минут
Общая сумма делится на 3; считайте префиксы с суммой S/3 слева от точек 2S/3.