Сразу скажу, это единственная задача, которая не вошла в https://codeforces.net/blog/entry/74106, основанный на МОШе, и не зря, ведь там нужно было ифать кучу случаев, и у меня, например, за неё 98 баллов :)
Условие
Решение
Код на Python
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 164 |
1 | maomao90 | 164 |
3 | Um_nik | 163 |
4 | atcoder_official | 160 |
5 | -is-this-fft- | 158 |
6 | awoo | 157 |
6 | adamant | 157 |
8 | TheScrasse | 154 |
8 | nor | 154 |
10 | djm03178 | 153 |
Решение задачи С с МОШа (Московская олимпиада школьников по информатике).
Сразу скажу, это единственная задача, которая не вошла в https://codeforces.net/blog/entry/74106, основанный на МОШе, и не зря, ведь там нужно было ифать кучу случаев, и у меня, например, за неё 98 баллов :)
...
Первый случай, когда m = 1
Нетрудно заметить, что любое число делится на 1, поэтому спрашивать ничего не надо.
b, n, m = int(input()), int(input()), int(input())
if m == 1:
print(0)
elif n == 1:
print(1)
elif m >= pow(b, min(n, 179)):
print(0)
else:
l, r = -1, n
while r-l > 1:
m1 = (l+r)//2
if pow(b, m1, m) == 0:
r = m1
else:
l = m1
if b == 2 and r == n:
print(n-1)
else:
print(r)
Rev. | Lang. | By | When | Δ | Comment | |
---|---|---|---|---|---|---|
ru27 | Dart-Xeyter | 2020-02-24 20:49:11 | 5 | Мелкая правка: 'например, 98 баллов' -> 'например, было 98 баллов' | ||
ru26 | Dart-Xeyter | 2020-02-24 20:47:41 | 83 | Мелкая правка: 'ложность $О(log(n)^2)' -> 'ложность $O(log(n)^2)' | ||
ru25 | Dart-Xeyter | 2020-02-24 20:29:22 | 17 | Мелкая правка: 'чтобы не возводить $b^{10^' -> 'чтобы не вычислять $b^{10^' (опубликовано) | ||
ru24 | Dart-Xeyter | 2020-02-24 20:24:54 | 390 | |||
ru23 | Dart-Xeyter | 2020-02-24 20:14:51 | 20 | |||
ru22 | Dart-Xeyter | 2020-02-24 20:14:09 | 79 | Мелкая правка: 'существует**, и $b =' -> 'существует **, и $b =' | ||
ru21 | Dart-Xeyter | 2020-02-24 20:05:42 | 48 | |||
ru20 | Dart-Xeyter | 2020-02-24 19:59:49 | 67 | |||
ru19 | Dart-Xeyter | 2020-02-24 19:55:46 | 247 | |||
ru18 | Dart-Xeyter | 2020-02-24 19:49:42 | 59 | |||
ru17 | Dart-Xeyter | 2020-02-24 19:45:29 | 146 | |||
ru16 | Dart-Xeyter | 2020-02-24 19:42:07 | 43 | |||
ru15 | Dart-Xeyter | 2020-02-24 19:30:38 | 25 | |||
ru14 | Dart-Xeyter | 2020-02-24 19:29:38 | 345 | |||
ru13 | Dart-Xeyter | 2020-02-24 19:28:30 | 795 | |||
ru12 | Dart-Xeyter | 2020-02-24 12:04:42 | 5 | Мелкая правка: 'жные числа, что > чем 0 и' -> 'жные числа > чем 0 и' | ||
ru11 | Dart-Xeyter | 2020-02-24 12:03:49 | 26 | |||
ru10 | Dart-Xeyter | 2020-02-24 12:02:30 | 7 | |||
ru9 | Dart-Xeyter | 2020-02-24 12:02:02 | 141 | |||
ru8 | Dart-Xeyter | 2020-02-24 11:50:33 | 295 | |||
ru7 | Dart-Xeyter | 2020-02-24 11:43:13 | 141 | |||
ru6 | Dart-Xeyter | 2020-02-24 11:40:54 | 1060 | |||
ru5 | Dart-Xeyter | 2020-02-24 11:27:55 | 409 | |||
ru4 | Dart-Xeyter | 2020-02-24 10:52:25 | 2 | Мелкая правка: ' m = 1**\nНетрудно' -> ' m = 1**\n\nНетрудно' | ||
ru3 | Dart-Xeyter | 2020-02-24 10:51:59 | 5 | Мелкая правка: 'ешение">\n#### **Первый с' -> 'ешение">\n**Первый с' | ||
ru2 | Dart-Xeyter | 2020-02-24 10:51:24 | 127 | |||
ru1 | Dart-Xeyter | 2020-02-24 10:22:47 | 422 | Первая редакция (сохранено в черновиках) |
Name |
---|