Одномерные массивы

41 задача
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дано N золотых слитков. Требуется распилить не более одного из них на две части (не обязательно равные, но с целой массой), после чего разделить слитки на две кучи равной массы.

Входные данные
В первой строке вводится одно натуральное число N, не превосходящее 100.

Во второй строке через пробел вводятся N натуральных чисел, не превосходящих 100 - массы имеющихся слитков.

Выходные данные
Выведите массы слитков, которые вошли в первую кучку (включая массу части распиленного слитка).

Если решений несколько, выведите любое из них.

Если решений нет, выведите фразу NO SOLUTION (заглавными буквами).

Выводить массы можно в произвольном порядке, но масса части распиленного слитка (если таковой имеется) должна быть последней.
Примеры
Входные данные Выходные данные
1 3
5 5 5
NO SOLUTION
2 4
1 2 3 8
1 2 3 1
Будильник в сотовом телефоне можно настроить так, чтобы он звонил каждый день в одно и то же время, либо в указанное время в определенный день недели. Независимо можно настроить несколько будильников.

По информации о будильниках и текущему времени и дню недели определите, когда прозвонит очередной будильник.

Входные данные
В первой строке вводятся три числа, задающие текущее время: день недели (от 1 до 7), часы и минуты.

Во второй строке вводится одно натуральное число N, не превосходящее 100 – количество будильников.

В следующих N строках вводятся описания N будильников. Описание каждого будильника состоит из трех чисел: дня недели (число от 1 до 7 для понедельника,  …, воскресенья, соответственно, 0 – если будильник должен звонить каждый день), часов (от 0 до 23), минут (от 0 до 59).


Выходные данные
Выведите  через пробел три числа, задающие день недели, часы и минуты, когда прозвонит ближайший будильник.
 
Примеры
Входные данные Выходные данные Пояснение
1 2 10 20
2
1 23 15
0 10 10
3 10 10  
2 7 1 1
3
7 0 59
7 23 59
7 1 1
7 1 1 Во втором примере третий будильник будет звенеть в начальный момент времени.
Последовательность чисел назовем симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:
1 2 3 4 5 4 3 2 1
1 2 1 2 2 1 2 1
Вашей программе будет дана последовательность чисел. Требуется определить, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.

Входные данные
Сначала вводится число N — количество элементов исходной последовательности (1 ≤ N ≤ 100). Далее идут N чисел — элементы этой последовательности, натуральные числа от 1 до 9.

Выходные данные
Выведите сначала число M — минимальное количество элементов, которое надо дописать к последовательности, а потом M чисел (каждое — от 1 до 9) — числа, которые надо дописать к последовательности.

Примеры
Входные данные Выходные данные
1 9
1 2 3 4 5 4 3 2 1
0
2 5
1 2 1 2 2
3
1 2 1
3 5
1 2 3 4 5
4
4 3 2 1
При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать "розу ветров" (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течении года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра ветра за каждый день (365) кодируется следующим образом: 
1 - северный (N),
2 - южный (S)
3 - восточный (E)
4 - западный (W)
5 - северо-западный (NW)
6 - северо - восточный (NE)
7 - юго-западный (SW)
8 - юго-восточный (SE).
Определить, как должен быть расположен жилой комплекс по отношению к комбинату

Входные данные: 
В первой строке подается 365 значений от 1 до 8 (направление ветра)

Выходные данные:
Вывести соответствующие буквы (аббревиатуру - смотри список выше), с какой стороны следует построить жилой комплекс
 
У Пети есть массив отсортированных в порядке неубывания натуральных чисел. Известно, что чисел N. Петя  пытливый мальчик, поэтому хочет найти в массиве три числа x, y и z (x <= y <= z), такие, что сумма (x - y)2 + (x - z)2 + (z - y)2 была бы максимальна. Помогите ему в этом.

Формат входных данных
В первой строке входного файла находится число N> (3<=N <= 100000). На следующей строке находятся N натуральных чисел, каждое из которых не превышает 10000.

Формат выходных данных
Нужно вывести три числа x, y и z в порядке возрастания. Если вариантов такой тройки несколько, вывести любой.
 
Ввод Вывод
4
1 2 3 5
1 2 5

Вам даны n чисел a1, a2, ..., an. Найдите наименьшее целое положительное число x, не содержащееся в множестве {a1, ..., an}, то есть, такое, что не существует i, для которого верно ai = x.

Входные данные

В первой строке записано целое число n (1 ≤ n ≤ 105) — количество чисел. Во второй строке через пробел записаны n чисел: a1, ..., an (1 ≤ ai ≤ 109).

Выходные данные

Выведите наименьшее целое положительное x не содержащееся в множестве {a1, ..., an}.

Примеры тестов

Входные данные

5
1 2 3 4 5
Выходные данные
6
Входные данные
5
1 3 4 5 6
Выходные данные
2

 

Примечание

Тесты разделены на группы, но оцениваются отдельно

  • n = 1 — 10 баллов
  • n ≤ 100 — 20 баллов
  • ai ≤ 106 — 30 баллов
  • Без дополнительных ограничений.

Так, если вы решили задачу для n ≤ 100, то вы получите 30 баллов за первую и вторую группы, если вы решили задачу для ai ≤ 106, то вы получите 30 баллов за третью группу. Если ваша программа будет работать в обоих случаях, то вы получите 60 баллов. За полное решение вы получите 100 баллов.


20244#20244
В массиве хранится информация о количестве людей, живущих на каждом из 15 этажей дома (на первом этаже — в первом элементе массива, на втором — во втором и т. д.). Определить два этажа, на которых проживает меньше всего людей. (Если минимальное количество жителей одинаково на 2х и более этажах, то вывести наименьшие этажи ) 
10384#10384
Дан массив из N элементов.  Удалить неодинаковые симметричные элементы.

В первой строке вводится число N (1<=N<=15)  - количество элементов одномерного массива
Во второй строке вводится N целых чисел (ввод чисел происходит с клавиатуры)

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1
5
1 0 2 0 0
0 2 0
2
6
4 0 1 4 5 4 
4 4

10382#10382
Дан массив из N элементов.  Удалить самую длинную последовательность нулей
(одинаковой длины последовательностей нет).

В первой строке вводится число N (1<=N<=20)  - количество элементов одномерного массива
Во второй строке вводится N целых чисел (ввод чисел происходит с клавиатуры)

Пример входных и выходных данных
№ теста Входные данные Выходные данные
1
5
1 0 2 0 0
1 0 2
2
6
4 0 0 0 3 0 
4 3 0

293#293

Что выполняет следующий фрагмент программы?

...
int random(int N)
{
 return rand()%N;
}
...
main()
{
const int N = 10;
int A[N], i;
printf("Исходный массив:\n");
for (i=0; i
1)  Заполняет массив случайными числами и не выводит их на печать.
2)  Заполняет массив случайными числами и выводит их на печать.
3)  Заполняет массив одинаковыми числами и выводит их на печать.
4)  Исходный фрагмент содержит ошибку
292#292

Что может содержать в себе ячейка массива ?

Варианты:

1) только строковые данные
2) только отрицательные числа
3) числа совпадающие с номером ячейки
4) любые данные

291#291

Выберите наиболее правильное продолжение фразы: "Массив - это ..."

Ответ:
1) Ограниченная упорядоченная совокупность однотипных величин
2) Ограниченная совокупность различных элементов
3) Совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам
4)нет правильного утверждения

226#226

Что производит следующий фрагмент программы?

 
for (i=0; i<n; i++)
{
   printf("a[%d]=",i);
   scanf("%d",&a[i]);
}
Варианты:
1) Ввод элементов массива с клавиатуры;
2) Вывод элементов массива на экран монитора;
3) Ввод элементов массива из файла;
4) Ввод элементов массива с клавиатуры и вывод его на экран;

 

148#148

#include <stdio.h>
#include <stdlib.h>

int random(int N) { return rand() % N; }
main()
{
const int N = 10;
int A[N], i;
printf("Исходный массив:\n");
for (i=0; i<N; i++) {
 A[i] = random(26) - 50;
 printf("%4d", A[i]);
 }
 
Значения элементов массива A будут находиться в диапазоне...
 
Варианты:
1) от -50  до 25
2) от -24 до 25
3) от -50 до -25
4) от -25 до 0
146#146

#include <stdio.h>
#include <stdlib.h>

int random(int N) { return rand() % N; }
main()
{
const int N = 10;
int A[N], i;
printf("Исходный массив:\n");
for (i=0; i<N; i++) {
 A[i] = random(100) + 50;
 printf("%4d", A[i]);
 }
 
Значения элементов массива A будут находиться в диапазоне...
 
Варианты:

1) от 0  до 149
2) от 0 до 150
3) от 50 до 150
4) от 50 до 149

 

145#145

Как задать элементу массива случайное целое число в диапазоне от -50 до 50, если в программе определена функция int random(int N) { return rand() % N; }?

Варианты
1) x[i]=random(-50)+50;                                
2) x[i]=random(100)-50;
3) x[i]=random(101)-50;                                      
4) x[i]=random(50)-50;

144#144

Что производит следующий фрагмент программы?

for (i=0; i<n;i++) printf("%d'',a[i]'');
 
Варианты:
1) Ввод элементов массива с клавиатуры.
2) Вывод элементов массива на экран монитора.
3) Ввод элементов массива из файла.
4) Вывод элементов массива в файл
143#143

Для чего производится описание массивов ?

Варианты:
1) Чтобы помнить самому сколько ячеек в массиве
2) Чтобы ЭВМ запомнила имя массива
3) Чтобы ЭВМ зарезервировала память для хранения элементов массива
4) Чтобы ЭВМ зарезервировала электричество для обработки массива

Поделиться
Класснуть