1. Техника на програмиране на C++ за състезания по програмиране.
Стандартен вход и изход в С++, пренасочване на входа и изхода.
Принцип на чекмеджетата.

Стандартен вход за езика C++

cin >> <име на променлива>;
Пример:
int k;
cin >> k;

Стандартен изход за езика C++

cout << <име на променлива>;
Пример:
int ik = -10;
unsigned int uk = 10;
long lk = -1000000;
unsigned long ulk = 1000000;
double dk = 2.52;
cout << ik << " " << uk << " " << lk << " "
     << ulk << " " << dk << "\n";

Задача 1. Минимално n-цифрено число (вариант 1)

Дадено е едно m-цифрено цяло положително число N. За всяко цяло число n (0 < n < m) да се намери най-малкото n-цифрено число, което може да се получи от цифрите на числото N.

Стандартен вход
Всеки пример се задава с едно m-цифрено число (2 < m < 30). Входът може да съдържа няколко примери.

Стандартен изход
За всеки пример от входа, на изхода се записват m реда. Всеки ред съдържа най-малкото намерено n-цифрено число.

Примерен вход
12
541603

Изход - решение с данни от примерния вход
1
12
1

10
103
1034
10345
103456


Принцип на чекмеджетата:

Както и да сложим n + 1 предмета в n чекмеджета, поне в едно чекмедже ще има най-малко 2 предмета.

Сортировка O(n)  с този принцип:
За сортиране на масив от n числа от интервала [0, N] е необходим масив от N елемента и сортирането се извършва с n операции.

Задача 2. Минимално n-цифрено число (вариант 2)

Дадено е m-цифрено цяло положително число N. За всяко цяло число n (0 < n < m) да се намери най-малкото n-цифрено число, което може да се получи от цифрите на числото N, без да се разменят местата на никои две цифри, т.е. числото се получава само чрез изтриване на някои цифри на числото N.

Стандартен вход
Всеки пример се задава с едно m-цифрено число (2 < m < 30). Входът може да съдържа няколко примери.

Стандартен изход
За всеки пример от входа на изхода се записват m реда. Всеки ред съдържа най-малкото намерено n-цифрено число. След всеки пример се оставя по един празен ред.

Примерен вход
12
541623

Изход - решение с данни от примерния вход
1
12

1
12
123
1623
41623
541623

Задача, предложена от Клоди - за обсъждане на следващото занятие [beats.rtf].