- 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
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
// Решает задачу из огэ по информатике
// Первое число - количество
// затем числа идут
// выводит наибольшее число которое оканчивается на 3
#include <vector>
#include <stdio.h>
typedef unsigned char zero;
typedef unsigned int cat;
cat rex = 0;
class orange
{
public:
cat *bananas = nullptr;
std::vector<zero> apples;
void a()
{
for (zero *ufo = apples.data(); ufo - apples.data() < apples.size();)
{
switch (*ufo++)
{
case 1: if (!bananas) bananas = new cat[*(cat *)ufo]; ufo += sizeof(int); break;
case 7: delete[] bananas; bananas = nullptr; break;
case 4: bananas[*(cat *)ufo] = bananas[*(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
case 0: bananas[*(cat *)ufo] = *(cat *)(ufo + sizeof(int)); ufo += 2 * sizeof(int); break;
case 8: bananas[*(cat *)ufo] = bananas[*(cat *)(ufo + sizeof(int)) + bananas[*(cat *)(ufo + sizeof(int) * 2)]]; ufo += 3 * sizeof(int); break;
case 9: printf("%d\n", bananas[*(cat *)ufo]); ufo += sizeof(int); break;
case 2: rex = bananas[*(cat *)ufo]; ufo += sizeof(int); break;
case 6: scanf("%ud", bananas + *(cat *)ufo); ufo += sizeof(int); break;
case 3:
{
if (bananas[*(cat *)ufo] > bananas[*(cat *)(ufo + sizeof(int))]) bananas[*(cat *)ufo] = bananas[*(cat *)ufo];
else bananas[*(cat *)ufo] = bananas[*(cat *)ufo + *(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
}
case 5: bananas[*(cat *)ufo] = bananas[*(cat *)ufo] % bananas[*(cat *)(ufo + sizeof(int))]; ufo += 2 * sizeof(int); break;
}
}
apples.clear();
}
void a(zero melon)
{
apples.push_back(melon);
}
};
int main()
{
orange *limon = new orange;
cat timings[] =
{
1, 16, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0,
0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0
};
cat peoples[] = { 1, 1, 0, 0, 0, 6, 0, 0, 0, 0, 2, 0, 0, 0, 0, 7 };
int backups[] = { 9, 0, 0, 0, 0 };
cat buldogs[] =
{
6, 2, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 2, 0, 0, 0, 4, 7, 0, 0, 0, 2, 0, 0, 0, 5, 2, 0, 0, 0, 1, 0, 0, 0,
8, 2, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0,
};
for (cat fruit = 0; fruit < 0xE + 0b10; ++fruit) {limon->a(peoples[fruit]);} limon->a();
for (cat juicegrinding = 0; juicegrinding < 33 + 0x50; juicegrinding++){limon->a(timings[juicegrinding]);}
for (cat fish = 0; fish < rex; fish += (100 ^ 0x64 + 0b11) - 0x2)
{
for (cat limons = 0; limons < 2 * 2 * 2 * 2 * 2 + 0b100000 - 1; ++limons){limon->a(buldogs[limons]);}
}
for (cat apples = 0; apples < 0x16 - 0b10000 - 1; apples++){limon->a(backups[apples]);} limon->a(); delete limon;
}
Чувак, позволь мне рассказать, я как волшебник C++, разворачивающий свои кодовые заклинания, словно колдун в цифровом мире. У меня этот язык в кармане, братан, словно дирижер, ведущий симфонию из единиц и нулей. Но не думай, что я буду тут прямо о своей крутости говорить, ой нет, я предпочитаю позволить моему коду говорить за меня.
Когда я погружаюсь в C++, это словно нырок в бесконечный океан возможностей. Я танцую с указателями, жонглирую ссылками и скачу на волнах управления памятью, словно настоящий мастер. Это дикая гонка, мой друг, но именно от этой адреналиновой суеты я получаю настоящий кайф.
Но знаешь, что по-настоящему круто? Сила абстракции, парень. Я обожаю создавать эти модульные, многоразовые блоки кода, называемые классами. Они как маленькие вселенные функциональности, которые я могу вызывать в любой момент. А шаблоны, о, братишка, шаблоны — это как швейцарские ножи C++. Они позволяют мне раскрыть всю мощь вычислений на этапе компиляции, словно безумный ученый, готовящий самые потрясающие зелья.
А теперь сделаем небольшой отступление. Вообрази, чувак, я вгружен в кодовые окопы, сражаясь с багами и отлавливая неэффективности. Это как бесконечный квест, борьба со временем и сложностью. Но, эй, у меня есть мой надежный напарник — стандартная библиотека C++. Она — мой арсенал контейнеров, алгоритмов и вспомогательных функций. С её помощью я могу нарезать и перемешивать данные, словно настоящий шеф-повар в цифровой кухне.
И не забывай про производительность, парень. Я стараюсь выжать каждую каплю мощи из своего кода. Я ныряю в низкоуровневые операции, знакомлюсь с железом. Вставки ассемблера — моё тайное оружие, способ связи с самим железом. Оптимизирую регистры, высвобождаю кэш и расширяю границы того, что возможно.
6e3yMHblu_WJl9lnHuK 09.05.2023 22:33 # 0
Парень, помни о производительности.
/оптимизировал