StartCoding | С++ - Советы, библиотеки, гайды
92 subscribers
123 photos
4 videos
4 files
48 links
Welcome to C-Juniors — a channel about competitive programming, problem solving, and useful tools. Clear content, real skills, steady growth.
Download Telegram
100 подписчиков — важная отметка

В нашем Telegram-канале стало 100 подписчиков — благодарим каждого, кто читает, поддерживает и остаётся с нами.
Это небольшой, но значимый шаг вперёд и хороший знак того, что контент находит отклик.

Будем признательны, если вы поделитесь каналом с теми, кому он может быть интересен — вместе сообщество будет расти и становиться сильнее.
👍75🏆1🆒1
Лямбды в C++: Как сортировать пары по двум критериям одной строкой

Представь типичную задачу: есть список студентов с оценками и ID. Нужно отсортировать их так, чтобы сначала шли те, у кого оценка выше, а при равных оценках — по возрастанию ID.

Обычно это требует написания отдельной функции сравнения, но в C++ есть элегантное решение — лямбда-выражения. Они позволяют описать логику сравнения прямо внутри вызова sort(), делая код компактным и читаемым.

А теперь смотри, как это выглядит на практике...

vector<pair<int, int>> v = {
{5,101}, {4,102}, {5,103}, {3,104}, {5,105}, {4,106}
};

sort(v.begin(), v.end(), [](auto a, auto b) {
return a.first == b.first ?
a.second < b.second :
a.first > b.first;
});

for(auto x : v)
cout << x.first << " " << x.second << "\n";
👍3
Областная олимпиада по информатике (11 классы)

Объявляется дорешивание отборочного и финального тура областной олимпиады по информатике среди учащихся 11 классов.
Дорешивание открыт для всех участников.

📅 Дата: 25 / 01 / 2026
🌐 Формат: онлайн, платформа olymp.tj
Время:
— Отборочный тур — 18:00
— Финальный тур — 19:00

📝 Регистрация обязательна и открыта до 17:00 (за 1 час до начала).

Это возможность:
— спокойно разобрать формат задач
— проверить уровень перед финалом
— поработать в условиях реальной олимпиады

🔗 Для регистрации перейдите: Вход

Готовьтесь и не упустите возможность проверить свои знания.
👍5
Областная олимпиада по информатике (9-10 классы)

Открыто дорешивание отборочного и финального этапов областной олимпиады по информатике для учащихся 9-10 классов.
Принять участие могут все зарегистрированные участники.

📅 Дата: 01 / 02 / 2026
🌐 Формат: онлайн, платформа olymp.tj
Время начала туров:
— Отборочный тур — 18:00
— Финальный тур — 19:00

📝 Для участия обязательна предварительная регистрация. Регистрация доступна до 17:00 (за час до старта).

Это отличный шанс:
— детально ознакомиться с типами и структурой задач
— оценить свою подготовку перед основным соревнованием
— протестировать себя в обстановке, приближенной к олимпиадной

🔗 Регистрация и вход через: Вход

Используйте эту возможность для проверки своих сил. Удачи в подготовке!
🔥51👍1
Областная олимпиада по информатике (7–8 классы)

Открывается дорешивание отборочного и финального этапов областной олимпиады по информатике для учащихся 7–8 классов.
Участвовать могут все зарегистрированные школьники.

📅 Дата проведения: 15 февраля 2026
🌐 Формат: онлайн на платформе olymp.tj
Старт туров:
— Отборочный тур — 18:00
— Финальный тур — 19:00

📝 Предварительная регистрация обязательна.
Закрытие регистрации — в 17:00 (за 60 минут до начала).

Почему стоит участвовать:
— разберёте реальные олимпиадные форматы задач
— проверите скорость и качество своего кода
— поймёте, где нужно усилить подготовку
— получите опыт участия в официальном турнире

🔗 Вход и регистрация: Перейти

Используйте возможность потренироваться в условиях, максимально приближенных к соревнованию.
Уверенность приходит через практику.
👍5
⚠️ Предупреждение об использовании нейросетей при решении задач

Использование нейросетей (например, ChatGPT) для полного решения заданий вместо самостоятельной работы может привести к дисквалификации.

Если участник просто копирует готовый ответ, это считается нарушением правил — так как проверяется не только результат, но и личные знания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Областная олимпиада по информатике (5–6 классы)

Приглашаем вас на дорешивание олимпиадных заданий — возможность не просто вспомнить прошедший тур, а разобрать каждую задачу детально, восполнить пробелы и почувствовать уверенность в своих силах.

🗓 Дата: 1 марта 2026 года
Время проведения:
— Первый тур: в 18:00
— Второй тур: в 19:00
💻 Платформа: olymp.tj

В течение четырёх часов (включая оба тура) вам будет открыт доступ к заданиям для повторного решения и разбора. Это полезный формат для тех, кто хочет глубже разобраться в материале и сделать шаг к новым победам.

Пожалуйста, не опаздывайте: регистрация закроется до начало дорешивания.
Будем рады видеть каждого, кто стремится к знаниям!
1
Big O: Как не словить Time Limit?

В спортивном программировании мало написать рабочий код — он должен быть быстрым. Big O показывает, как время работы программы растет вместе с размером данных. Если твой алгоритм делает N^2 операций при массиве в 10^5, ты гарантированно получишь ошибку превышения времени (TLE).

С++ за секунду переваривает около 10^8 простых операций. Перед тем как кодить, всегда сопоставляй ограничения задачи с логикой: для 10^5 элементов ищи решение за O(N log N), а для 10^8 подойдет только чистый O(N).

Краткая шпаргалка:

O(1) — Магия (формулы).
O(log N) — Бинарный поиск.
O(N) — Один цикл.
O(N log N) — Сортировка.
O(N^2) — Вложенные циклы (яд для больших данных).

#cpp #algorithms #coding
👍3
Шаблон для соревнований: почему bits/stdc++.h — это база.

В спортивном программировании время на перечисление <vector>, <algorithm> и <map> — это потерянные минуты. Один хедер #include <bits/stdc++.h> заменяет десятки строк, подтягивая всю стандартную библиотеку GCC разом. В олимпиадном программировании это база, так как ускоряет подготовку, исключает ошибки забытых библиотек и работает в большинстве систем, включая Codeforces.

Это стандарт де-факто для олимпиадника: код чище, а риск получить CE (Compilation Error) из-за забытого инклуда — нулевой.

Что нужно знать:

Скорость: На время выполнения (Runtime) это не влияет, только на секунду дольше компилится у тебя на ПК.
Совместимость: Работает на всех топовых платформах (Codeforces, LeetCode, на олимпиадах), но может не завестись в Visual Studio.

#cpp #libraries #alghorithms
👍1
Идеальный компаратор через std::tie

В спортивном программировании часто нужно сортировать объекты по 3–4 критериям (например: баллы ↓, штраф ↑, время ↑). Вместо громоздких каскадов if-else, которые плодят баги, используй лексикографическое сравнение через std::tie. Оно сравнивает элементы последовательно: если первые равны, переходит ко вторым, и так далее.

// Сортировка: очки (desc), время (asc)
sort(players.begin(), players.end(), [](auto &a, auto &b) {
return tie(b.score, a.time) < tie(a.score, b.time);
});


Почему это стандарт:

Безопасность: Исключает риск нарушить правила строгого слабого упорядочивания (Strict Weak Ordering), за которые std::sort может выдать Runtime Error.
Читаемость: Весь приоритет сортировки виден в одной строке.
Zero-cost: Компилятор эффективно оптимизирует такие сравнения, не создавая лишних объектов в памяти.

#cpp #tie #comparator
👨‍💻2
Битовая магия — основы и скорость

В спортивном программировании битовые операции — это не просто способ сэкономить память, это инструмент для экстремального ускорения кода. Они выполняются процессором за один такт и заменяют тяжелые арифметические операции и условия.

int a = 5;      // 0101 в битах
int b = 3; // 0011 в битах
int res = a ^ b; // 0110 (XOR) -> 6


Краткий справочник:
& ( AND ) : Проверка бита. (n & 1) — проверка на нечетность (быстрее чем % 2).
| ( OR ) : Установка бита.
^ ( XOR ) : Инверсия. Помни: a ^ a = 0 (база для поиска одиночного числа).
<< / >> : Сдвиги. 1 << n — это 2^n за наносекунду.

Почему это важно:
Почти любая задача на подмножества или динамику по маскам строится на этих операциях. Битовый сдвиг влево на k позиций эквивалентен умножению на 2^k, но работает в разы быстрее.

#cpp #bitoperation #alghorithms
👍3