Летняя практика ИВТ УлГТУ
Первый этап (8 — 9 июля): знакомство с тестирующей системой и задачами
Студентам предлагается зарегистрироваться и попробовать решить несколько задач в открытой тестирующей системе ACMP.
При регистрации на сайте ACMP принято указывать фамилию, имя и отчество на русском языке. Для того, чтобы облегчить организаторам практики поиск вашей учётной записи, добавьте после имени метку «[УлГТУ]», а также укажите значения полей «Город» и «Учреждение». Пример заполнения регистрационной формы приведён справа.
После регистрации прежде всего следует ознакомиться с разделами Работа в системе и Новичкам.
Рекомендуется решать задачи в порядке возрастания сложности. Упорядоченный по сложности список задач доступен по ссылке. Большинство простых задач имеют разбор решений.
Подробный пример работы с системой ACMP
Рассмотрим процесс решения на примере задачи №274 «Дружные числа».
Логика решения достаточно проста: для каждого из проверяемых чисел опишем логический массив, в котором i-ый элемент равен 1, если число содержит цифру i. Два числа являются дружными тогда и только тогда, когда соответствующие им массивы поэлементно равны. Ниже показаны функции для определения логических массивов и их сравнения.
void getDigits(int n, bool dn[]) { while (n) { dn[n % 10] = true; n /= 10; } } |
bool compareDigits(bool da[], bool db[]) { for (int i = 0; i < 10; i++) if (da[i] != db[i]) return false; return true; } |
Основная функция может иметь следующий вид:
int main() { int testCnt, a, b; bool da[10], db[10]; scanf("%d", &testsCnt); for (int i = 0; i < testsCnt; i++) { scanf("%d%d", &a, &b); getDigits(a, aDig); getDigits(b, bDig); printf("%s\n", compareDigits(da, db) ? "YES" : "NO"); } return 0; }