Предмет: Информатика, автор: Nisari

Кириллу на день рождения подарили набор цифр для магнитной доски. Очень скоро родители обнаружили, что мальчик составляет из них числа, в которых никакие соседние цифры не являются одинаковыми. "Это особые числа, я сам их придумал!" - торжественно заявил мальчик. Какое наибольшее число Кирилл сможет составить?
Формат входных данных:
Единственная строка входа данных содержит 10 неотрицательных целых чисел d(0<=d<=100) - количество различных магнитных цифр от 0 до 9, записанных через пробелю Гарантируется, что из данного набора можно составить хотя бы 1 особое число.
Формат вывода данных:
Выведите 1 наибольшее натуральное особое число, которое можно составить из данного набора.
Пример:
2 3 0 0 0 0 0 0 0 0 --> 10101


KYLADYN: #include
using namespace std;
int main()
{
int arr [10];
int a;
for(int i = 0; i<10 ; i++){
cin>>arr[i];
for(int t = 0; t<10; t++){
if(arr[i]>arr[t]){
a = arr[t];
arr[t]= arr[i];
arr[i] = a;
}
else {
arr[i]=0;
}
}
}
for(int i = 0; i<=9; i++){
cout<}
return 0;
}
KYLADYN: https://www.onlinegdb.com/online_c++_compiler
KYLADYN: Компиле плюсов
KYLADYN: компилер
Nisari: Спасибо!
KYLADYN: НО
KYLADYN: Неполное решение
Всего тестов: 21, пройдено: 0, не пройдено: 21.
Получено баллов: 0 (из 100).
Nisari: Окей, спасибо
DeathSwear: Аче всмысле, там на си плюсах над? Лучше бы сразу тогда все на них делал..
KYLADYN: Да можно на плюсах

Ответы

Автор ответа: DeathSwear
4

Ну крч, это не та задача, но D, с гаражами, я решил, так что лови ее)00))0)))) Думаю, пригодится)

(Паскаль)

program E;

var n,k,i,j,c:integer;

a: array[1..1000000] of integer;

begin

readln(n,k);

for i:=1 to k do

 read(a[i]);

c:=n;

for i:=1 to n do begin  

 for j:=1 to k do begin

   if (a[i] = a[j]+1) then c:=c-1;

writeln(c);

end.


KYLADYN: Пишет неверно
KYLADYN: Чел
KYLADYN: код не проходит))
DeathSwear: 35 дают баллов
DeathSwear: Я хз, в чем ошибки в тестах. Мб отсутствие проверок на попытку сломать?
Автор ответа: maksimillian1
3

сразу говорю, это неполное решение и за него дают не 100 а лишь 25 баллов, да мало, но лучше чем ничего, на крайний случай если так и не найдешь толковое решение

from queue import PriorityQueue

d = {k: x for k, x in enumerate(map(int, input().split())) if x != 0}

q = PriorityQueue()

for x, k in d.items():

   q.put((-k, x))

res = []

p_k, p_x = q.get()

res.append(p_x)

while q.qsize() != 0:

   k, x = q.get()

   res.append(x)

   if p_k < -1:

       q.put((p_k + 1, p_x))

   p_k, p_x = (k, x)

print(*res[::-1], sep='')


DeathSwear: язык?
maksimillian1: python 3
suetanamide: не робит ,везде ошибку выдают (пишу на питон 3,9,2)
Похожие вопросы
Предмет: Математика, автор: maks7388