Мой первый пост — о контесте №10.
A. Учет энергопотребления
В этой задаче всего-навсего нужно было имитировать работу ноутбука. Будем записывать результат в переменную res. Для каждого интервала прибавим к res число (ri - li)· P1, т.к. во время интервалов ноутбук работает на полную мощность. Обозначим функцию
int foo (int &m, int t) {
if(m < t) t = m;
m -= t;
return t;
}
Далее для каждого i < n к res применим следующие действия: пусть время между концом i-ого и началом (i + 1)-ого интервалов — tmp. Тогда прибавим к res
![](https://espresso.codeforces.com/3bcc0918a193f3adee75b17586a5561ac49132a3.png)
Думал, что программа запорется на крайних тестах. Оказалось, ошибочно думал — AC.
B. Кассир в кинотеатре
Сразу начал искать какой-нибудь быстрый алгоритм, на это потратил какое-то время. Потом подумал —"а зачем?" и написал bruteforce.
Алгоритм простой до безобразия и без оптимизаций (
![](https://espresso.codeforces.com/9515bb79c94c7571016c4a81bbade8ba4437a6b8.png)
C. Цифровой корень
Математика, обрадовался я. Известный факт, что
![](https://espresso.codeforces.com/f0811c69cb1cdd911508bb72979f0d067ad1f710.png)
![](https://espresso.codeforces.com/46f0999021aa29b849e27222f8479e311c1ac68f.png)
Посчитаем, сколько троек чисел удовлетворяют Васиному условию. В массиве A[9][9]
![](https://espresso.codeforces.com/b15409d250b64f9eccbc360434ece1a7e5c04849.png)
Теперь посчитаем, сколько троек Вася найдёт правильно своим условием. Подумаем: ведь это те и только те тройки A, B, C, которым выполняется A· B = C ≤ n. То есть, произведение A и B не более n. Как найти это количество? Очевидно, что как A и B годятся все числа 1 и i, i ≤ n. Так же годятся все числа 2 и i,
![](https://espresso.codeforces.com/d3f3784b5bba59a0eed2cbf38ebd1149b104bc56.png)
![](https://espresso.codeforces.com/e59d0fb34fc557d5228888707e46c09cdfefc2db.png)
Ответ — X - Y. Ну, думаю, сейчас уж не прокатит третий раз с первого раза. И внезапно — AC. Ну тут я обрадовался.
Посмотрел на задачи D и E. Вижу, почти никто D не решил. Однако всё-таки посмотрел, подумал, что DP, подумал, что уже раньше что-то подобное видел. Но писать что-то уже было влом, да и наверное, беcперспективно, раз даже лидеры не решили. В E тоже особенно не вдумывался. Поняв, что за полчаса не решу ни одну из этих двух задач, на этом и закончил. Впечатления: хороший контест, особенно понравилась задача C.
Ну, к определённому успеху я пришёл — поднялся с Сержанта (1466) до Лейтенанта (1610): +144. Ну что, отлично.