Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 14
1

Мадагаскар

02.09.2019, 18:03. Показов 2061. Ответов 16
Метки нет (Все метки)

Лев Алекс, будучи истинным царем зверей, подарил на День Рождения Марти игрушечный зоопарк. Эта модель зоопарка крайне простая и ее можно представить как линию, на которой расположены звери и кормушки с едой для них. Каждый из зверей принадлежит какому-то виду. Зверь
может кушать только ту еду, которая предназначена для его вида, и для каждого вида эта еда
различна.
Марти уже расставил суммарно 2n зверей и кормушек на линии. В зоопарке количество кормушек равно количеству зверей. Теперь он хочет начать процесс поедания зверем еды из кормушек.
Один шаг этого процесса выглядит следующим образом:
1. Марти выбирает какого-то зверя, стоящего на линии.
2. Он двигает его в какую-то сторону вдоль этой линии.
3. Зверь не должен столкнуться ни с каким другим зверем или кормушкой за исключением кормушки с едой, соответствующей виду этого зверя.
4. Когда зверь находится в той же точке, что и кормушка с едой его вида, он съедает всю еду, и
тогда Марти убирает и этого зверя, и эту кормушку с линии.
Помогите узнать Марти, можно ли провести этот процесс так, чтобы животных на линии не
осталось, иными словами, все животные были накормлены.
Формат входных данных
Первая строка содержит строку из 2n(1 6 n 6 50000) символов латинского алфавита. Если i-й
символ строки является строчной буквой, это значит, что на i-м месте линии, если перечислять объекты на линии слева направо, стоит кормушка с едой, которую могут есть звери вида, обозначаемого
соответствующим заглавным символом. Если же i-й символ строки является заглавной буквой, то
на i-м месте линии стоит зверь вида, обозначаемого этим символом.
Формат выходных данных
Если невозможно провести процесс желанным образом, выведите «Impossible».
Если это возможно, выведите «Possible», а затем для каждого из зверей в том порядке, в
котором они описаны во входных данных, выведите порядковый номер кормушки, еду из которой
он должен съесть. Кормушки нумеруются с 1 в порядке, в котором даны во входных данных.

Примеры
ВВОД:
ABba
ВЫВОД:
Possible
2 1

ВВОД:
ABab
ВЫВОД:
Impossible
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2019, 18:03
Ответы с готовыми решениями:

Мадагаскар
Лев Алекс, будучи истинным царем зверей, подарил на День Рождения Марти игрушечный зоопарк. Эта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
6 / 10 / 2
Регистрация: 08.08.2019
Сообщений: 63
02.09.2019, 18:55 2
Букв слишком много, сорри
0
676 / 554 / 81
Регистрация: 29.01.2013
Сообщений: 3,603
02.09.2019, 22:18 3
и ни одной попытки попробовать что-то сделать самостоятельно
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 14
02.09.2019, 22:26  [ТС] 4
Alli_Lupin, вам скинуть код или что? Просто такая ситуация, что задача решена, в компиляторе все отлично работает, но при отправке в тестирующую систему она выдает ошибку даже на 1ом тесте, который по сути является примером входных данных, с которыми в компиляторе все отлично решается
0
676 / 554 / 81
Регистрация: 29.01.2013
Сообщений: 3,603
02.09.2019, 22:36 5
PaPuAz_1337, и вы верите, что мы по описанию условия расскажем вам, что у вас не так? Так извините, хрустальный шар в ремонте.
0
Эксперт Python
4536 / 1962 / 353
Регистрация: 17.03.2012
Сообщений: 9,874
Записей в блоге: 5
03.09.2019, 09:50 6
По-моему, на каждом шаге просто надо найти пару "зверь-кормушка", чтобы они были на соседних позициях. Это просто.
Или я ошибаюсь?
0
Йуный падаван
Эксперт PythonЭксперт Java
8662 / 5086 / 1766
Регистрация: 21.10.2017
Сообщений: 13,740
04.09.2019, 16:16 7
Цитата Сообщение от PaPuAz_1337
Просто такая ситуация, что задача решена, в компиляторе все отлично работает, но при отправке в тестирующую систему она выдает ошибку даже на 1ом тесте,
Ага. Решена. На питоне, на джаве и на плюсах. И везде работает, кроме тестирующей машины. Ну-ну...
0
0 / 0 / 0
Регистрация: 01.09.2019
Сообщений: 14
04.09.2019, 16:18  [ТС] 8
iSmokeJC, вам код скинуть? Если что, я нашел ошибку в оформлении вывода и задача прошла
0
Автоматизируй это!
Эксперт Python
4877 / 3380 / 971
Регистрация: 30.03.2015
Сообщений: 10,462
Записей в блоге: 28
04.09.2019, 16:19 9
PaPuAz_1337, да, давай на джаве и на питоне сюда, чисто ознакомиться
1
Йуный падаван
Эксперт PythonЭксперт Java
8662 / 5086 / 1766
Регистрация: 21.10.2017
Сообщений: 13,740
04.09.2019, 16:21 10
PaPuAz_1337, вот лично мне ваш код нужен как ежу футболка. Просто логично, когда просишь найти ошибку - показываешь где. И этично после решения проблемы осветить ее на форуме - вдруг кому пригодится? А то тильки для сэбэ...
0
0 / 0 / 0
Регистрация: 19.05.2019
Сообщений: 1
05.09.2019, 20:13 11
Цитата Сообщение от PaPuAz_1337 Посмотреть сообщение
iSmokeJC, вам код скинуть? Если что, я нашел ошибку в оформлении вывода и задача прошла
Отправь код, пожалуйста, у меня такая же проблема с первым тестом
0
1 / 1 / 0
Регистрация: 04.09.2019
Сообщений: 6
05.09.2019, 23:01 12
PaPuAz_1337, Скинешь пожалуйста сюда код? Просто мне не совсем понятно, как это работает...
0
Welemir1
06.09.2019, 06:05
  #13

Не по теме:

CoderXS, postironia, боюсь мы его больше не увидим)

0
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 3
07.09.2019, 20:20 14
у кого нибудь есть ответ на задачу. В случии положительного ответа пришлите пожалуйста.

Добавлено через 47 минут
ВОТ код на lava
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String n = scan.nextLine();
        System.out.println(getPossible(n));
 
    }
    private static boolean getPossible(String source) {
        for (int i = 0; i < source.length() / 2; i++) {
            if (source.charAt(i) + 32 != source.charAt(source.length() - i - 1))
                 {System.out.println("Impossible");System.exit(0);}
        }
        System.out.println("Possible");System.exit(0);
        return true;
    }
}
НО работают далеко не все примеры
0
0 / 0 / 0
Регистрация: 04.09.2019
Сообщений: 2
08.09.2019, 19:17 15
Да, можно

Добавлено через 1 минуту
Есть ли код на решение данной задачи?
0
676 / 554 / 81
Регистрация: 29.01.2013
Сообщений: 3,603
09.09.2019, 13:54 16
B787, есть, только нам его не привели
0
Автоматизируй это!
Эксперт Python
4877 / 3380 / 971
Регистрация: 30.03.2015
Сообщений: 10,462
Записей в блоге: 28
09.09.2019, 15:57 17
postironia, CoderXS, Dalvertyu, B787, вот накидал на коленке, так что может что-то и не работает. Если такой пример найдете, то напишите что на вход и что ожидалось на выходе, но что получилось

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def feed_animals(code_str: str) -> str:
    _, letters = _generate_pairs(code_str, [])
    if _:
        return 'Impossible'
    indexes = [str(code_str.index(e) + 1) for e in letters]
    return 'Possible\n' + ' '.join(indexes)
 
 
def _generate_pairs(code: str, pairs: list) -> tuple:
    for i in range(len(code) - 1):
        if code[i].lower() == code[i + 1].lower():
            letter = code[i] if code[i + 1].islower() else code[i + 1]
            pairs.append(letter)
            code = code.replace(letter, '').replace(letter.lower(), '')
            return _generate_pairs(code, pairs)
    return code, pairs
 
 
if __name__ == '__main__':
    print(feed_animals('ABba'))
    print('-'*10)
    print(feed_animals('ABab'))
0
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.