СОДЕРЖАНИЕ
учителя информатики КГУ «Гимназия №9» г.Караганды
Задача 1 (№ 1) A+B (Сложность: 1%)
Задача 3 (№ 903) Бисер (Сложность: 2%)
Задача 4 (№ 942) Олимпиада (Сложность: 2%)
Задача 5 (№ 195). Эния (Сложность: 3%)
Задача 7 (№ 33) Два бандита ( Сложность: 4%)
Задача 10 (№ 819) Прямоугольный параллелепипед
x=(h*(l+w)*2)/16; нужно учесть, что банка может быть неполной
Задача 14 (№ 780) Футбол (Сложность: 22%)
Выходные данные. В выходной файл OUTPUT.TXT выведите одно число – общее количество забитых мячей.
Задача 15 (№ 900) Три грибника (Сложность: 23%)
Задача 16 (№ 25) Больше-меньше (Сложность: 3%)
Задача 19 (№ 8)Арифметика (Сложность: 5%)
Задача 21 (№ 755) Сбор земляники (Сложность: 6%)
Задача 33 (№ 948) Сроки в книге (Сложность: 13%)
Задача 37 (№ 929) Игральные кубики (Сложность: 15%)
Задача 38 (№ 263) Метро (Сложность: 16%)
Задача 39 (№ 844) Поля (Сложность: 16%)
Задача 40 (№ 294) Болты и гайки (Сложность: 17%)
Выходные данные. В выходной файл выведите одно целое число – размер ущерба.
Задача 41 (№ 606)Треугольник – 3 (Сложность: 17%)
Задача 42 (№ 952) В автобусе (Сложность: 18%)
Задача 43 (№ 952) Кастинг (Сложность: 19%)
1, если в данном тесте требуется определить минимальное количество актеров;
Задача 45 (№ 68) Дом - Школа – Дом (Сложность: 21%)
Задача 49 (№ 692) Бинарные числа (Сложность: 8%)
Задача № 52 (№ 233). Автобусная экскурсия (Сложность: 14%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 55 (№ 264) Оттепель(Сложность: 17%)
Задача 56 (№ 949) Фибоначчиева последовательность. (Сл.17%)
Задача 57 (№ 778) Офис (Сложность: 18%)
Задача 60 (№ 947) Карточки – 3 (Сложность: 22%)
Задача 62 (№ 716) Треугольник Максима (Сложность: 25%)
Задача 63 (№ 272) Сумма max и мin (Сложность: 26%)
Задача 66 (№ 149). Разворот (Сложность: 9%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 69 (№ 637) NEERC (Сложность: 17%)
Задача 70 (№ 293) Налоги (Сложность: 20%)
Задача 74 (№ 324) Четырехзначный палиндром ( Сл.: 10%)
Задача 80 (№ 43) Нули (Сложность: 16%)
Задача 81 (№ 297) Кругляши (Сложность: 16%)
Задача 83 (№ 895) Крестики-нолики (Сложность: 19%)
Выходные данные. В выходной файл OUTPUT.TXT выведите ответ на задачу.
Задача 87 (№ 633) ACM World Finals (Сложность: 20%)
Задача 89 (№ 315) Наименьшая система счисления (Сл.: 26%)
| № | INPUT.TXT | OUTPUT.TXT |
| 1 | 4 0 1 1 0 | 0.6666666667 |
| 2 | 5 2 2 2 2 2 | 2.0000000000 |
| #include using namespace std; int main() { int n ; double s,h1,h2; cin >> n; cin >> h1; s = 0; for (int i = 1; i < n; i++) { cin >> h2; s=s+(h1+h2)/2; h1=h2;} s=s/(n-1); printf("%.5f", s); return 0; } | Холм может состоять из трапеций, прямоуголь-ников или треугольников со стороной =1 м. S трапеции= =(h1+h2)/2S прямоугольника (при h1=h2) и S треугольника (при h2=0) сводятся к той же формуле. Что бы не использовать массив для каждой следующей фигуры превращаем h2 в h1 и читаем h2. Полученную площадь холма длим на (n-1), т.к. участков на 1 меньше чем точек измерения |
| № | INPUT.TXT | OUTPUT.TXT |
| 1 | 4 1 2 3 4 | 3 |
| 2 | 3 -1 0 1 | 0 |
| #include using namespace std; int main(){ long long int a, k, n; cin>>n; k=n/2+1; for(int i=1;i<=n;i++){ cin>>a; if(i==k) cout< return 0; } | Школа должна стоять посередине. Если домов четное количество, то n/2+1 (Если ответов несколько, выведите наибольший из них). Находим координату среднего дома |
| № | INPUT | OUTPUT |
| 1 | 3 1 2 3 | 3 2 1 |
| № | INPUT | OUTPUT |
| 1 | 6 1 2 3 4 5 6 5 1 1 2 6 3 4 5 6 2 4 | 1 2 3 4 5 6 3 4 5 6 2 3 4 |
| # include using namespace std; int main(){ int n,j,m,b,c; int a[1001]; cin >>n; for(int i = 1; i <= n; ++i){ cin>>a[i]; } cin>>m; for (int i = 1; i <= m; ++i){ cin>>b>>c; for (int j = b; j <= c; ++j){ cout< cout< return 0; } | |
| № | INPUT.TXT | OUTPUT |
| 1 | 4 1 2 3 4 | 9 |
| 2 | 3 1 2 3 | 6 |
| #include using namespace std; int main() { int N, arr[1002], max = 0; cin >> N; for (int i = 0; i < N; i++) {cin >> arr[i]; } arr[N] = arr[0]; arr[N + 1] = arr[1]; for (int i = 1; i <= N; i++) { if (arr[i - 1] + arr[i] + arr[i + 1] > max) max = arr[i - 1] + arr[i] + arr[i + 1]; } cout << max; return 0; } | т.к.грядка круглая, то нужно сложить последний куст с первым и нулевым. Можно просто перебросить их в конец массива. |
| № | INPUT | OUTPUT |
| 1 | 3 1 2 4 3 | 6 |
| 2 | 3 1 2 4 4 | 7 |
| #include using namespace std; int main() { int n,k,a[10000],s=0,x; cin>>n; for(int i=0;i cin>>k; for(int i=0;i if(a[i]>k) x=k; else x=a[i]; s=s+x; } cout< return 0; } | Если команд больше чем залов, то берем столько команд, сколько залов. Иначе берем все команды. |
| № | INPUT | OUTPUT |
| 1 | 1 1 1 | 1 |
| 2 | 2 1 2 3 2 | 2 |
| 3 | 3 100 1 50 0 100 3 | 3 |
| № | INPUT.TXT | OUTPUT.TXT |
| 1 | 6 1 2 5 2 1 2 | 2 |
| 2 | 4 5 5 4 4 | 0 |
| #include using namespace std; int main() { int n,k,a,z; int arr[100]; for(int i=0;i<=100;i++) {arr[i]=0;} cin>>n; for(int i=1;i<=n;i++) { cin>>a; arr[a]++; } int max=0; z=0; for(int i=1;i<=100;i++) { if(arr[i]>max) {max=arr[i]; z=i; }} k=0; for(int i=1;i<=100;i++){ if(max==arr[i]) k++; } if (k==1) cout< return 0;} | Будем использовать сортировку подсчетом. Создаем и обнуляем массив, размер которого= количеству цветов. i-я ячейка соответствует i-му цвету. Нужно подсчитать количество каждого цвета. Читаем цвет (а) и увеличиваем соответствующую ячейку на 1. Находим самый популярный цвет (мах) Проверяем условие: если оказывается, что таких народов (мах) несколько, то выбираем белый цвет, который обозначается нулём |
| № | INPUT.TXT | OUTPUT |
| 1 | 5 1 50 3 4 3 16 1 2 3 4 5 1 3 3 4 5 5 5 5 5 4 5 | yes no no no yes |
| #include #include using namespace std; int main(){ int n,k,p; int key[2][101]; cin>>n; for(int j=1;j<=n;j++){cin>>key[0][j];} for(int j=1;j<=n;j++){key[1][j]=0;} cin>>k; for(int i=1;i<=k;i++){ cin>>p; key[1][p]++; } for(int i=1;i<=n;i++){ if(key[0][i]>=key[1][i]) cout<<"no"< else cout<<"yes"< return 0;} | Задача также решается сортировкой подсчетом. Для решения используется массив из двух строк: 0 строка – допустимое число нажатий клавиши, 1 строка- сколько раз была нажата клавиша
|
| #include #include using namespace std; int main() { int n,k,a[10000]; int kp=0; int ko=0; int Sp=0; int So=0; cin>>n; for(int i=1;i<=n;++i){ cin>>a[i]; if (a[i]>0) {Sp=Sp+a[i]; kp++;} if (a[i]<0) {So=So+a[i]; ko++;} } if (Sp>abs(So)){ cout< for(int i=1;i<=n;++i){ if (a[i]>0) cout< } if (Sp cout< for(int i=1;i<=n;++i){ if (a[i]<0) cout< } if (Sp==0 and So==0) cout<<"1 1"; return 0; } |
Не совсем корректная постановка задачи. Нужно найти сумму положительных чисел и сумму отрицательных чисел и сравнить их по модулю. Если больше сумма положительных чисел, то выводим количество положительных чисел, находим их и выводим номера. Иначе выводим количество отрицательных чисел и их номера Если даны все нули, то ответ 1 1 |