- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
// @param n `0 <= n`
// @param m `1 <= m`
// @return `(x ** n) % m`
constexpr long long pow_mod_constexpr(long long x, long long n, int m) {
if (m == 1) return 0;
unsigned int _m = (unsigned int)(m);
unsigned long long r = 1;
unsigned long long y = safe_mod(x, m);
while (n) {
if (n & 1) r = (r * y) % _m;
y = (y * y) % _m;
n >>= 1;
}
return r;
}
// Reference:
// M. Forisek and J. Jancina,
// Fast Primality Testing for Integers That Fit into a Machine Word
// @param n `0 <= n`
constexpr bool is_prime_constexpr(int n) {
if (n <= 1) return false;
if (n == 2 || n == 7 || n == 61) return true;
if (n % 2 == 0) return false;
long long d = n - 1;
while (d % 2 == 0) d /= 2;
constexpr long long bases[3] = {2, 7, 61};
for (long long a : bases) {
long long t = d;
long long y = pow_mod_constexpr(a, t, n);
while (t != n - 1 && y != 1 && y != n - 1) {
y = y * y % n;
t <<= 1;
}
if (y != n - 1 && t % 2 == 0) {
return false;
}
}
return true;
}
template <int n> constexpr bool is_prime = is_prime_constexpr(n);
Да, этот код по стилю прям очень сильно напоминает херню из "kPHP". Это такой особый лимпиадный C/C++
std::swap недостаточно перфомансно работает, да?
И что эта херота делает? Сшивает кучу файлов в одну единицу трансляции, чтобы можно было отправить это на олимпиадный сайт?
Интересно, у олимпиадников есть специальные олимпиадные библиотеки для алгоритмов и структур данных? Или они такое нахуеверчивают сами руками каждый раз, вызубрив все эти алгоритмы? Или у каждого уважающего себя олимпиадника есть свой говнонабор написанных им лично алгоритмов и структур данных, который он переиспользует в всяких разных олимпиадах?
Да, похоже что есть специальные о-ли-мпи-ад-ные библиотеки со всякой такой хуйней
https://github.com/xennygrimmato/Data-Structures-and-Algorithms/
> A collection of some implementations of data structures and algorithms, primarily for competitive programming.
Или вот еще https://github.com/VandanRogheliya/Competitive-Programming-Setup/
дохуя находит
Это на онлайне можно каких-нибудь кусков по-быстрому накопипастить.
Т.е. олимпиады проверяют навык быстрого наговнивания некоторой хуйни, которая бы формально проходила все тесты?
Некоторые олимпиадные задачи заточены под использования бигинтов, а в крестах их еще не завезли, притом в каком-нибудь питоне эти бигинты есть из коробки, и поскольку в питоне не надо изобретать бигинты, писать на питоне такие задания заметно проще, чем на крестах. Не логичнее ли тогда для тех же крестов разрешить юзать какую-то бигинтовую либу? Может быть олимпиадникам надо пойти в крекстокомитет и им в пропозалы внести свои говнобиблиотеки для олимпиад? И чтоб было std::olympiad::какаятохуйня
А теперь проифай их там, где этот primality check реально нужен... В каком-нибудь RSA 4096.
Для крупных видимо надо больше базисов или формулу которая сильнее вероятность режет на каждом тесте.
A17: Spammers are criminal gangs. In 2004 and since, many other blacklists stopped after they were threatened or attacked.
We also got a package from Ukraine with a dead rat inside and a message: "You are next!"
For security reasons we moved to a new location and have chosen to continue our war against spammers.
Art 34 Abs 5 BayMeldeG (Bavarian Law) grants that only national authorities can find out about us.
Тяжело программировать под Сетунь...
Да, поведение бинарных операторов типа побитовово И и ИЛИ будет интересно
Фу! Отбрось бинарное мышление.
Пусть в char (трайте) будет 9 тритов. А sizeof(int) например 3 трайта будет.
> логика
Вы о чем вообще?
Тогда можно сделать совместимую с двоичной машиной сёмантику для and, or и xor -- двойки трактовать как единички. Старый код в принципе будет работать если обмазать его tri2bin и bin2tri вокруг битоёбств.
А для троичной логики уже добавить новые операторы.
Давай придумаем высокоуровневый ЯП для Сетуни.
Как будет выглядеть сортировка пузырьком?
Разве что бул можно сделать с да/нет/х.з. как в sql.
Какой эйблизм )))
https://www.youtube.com/watch?v=Tw-P7xwFSjs