powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Шеренга
25 сообщений из 57, страница 1 из 3
Шеренга
    #39187373
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петя Васечкин перешел в другую школу. На уроке физкультуры ему нужно определить свое место в строю ...
ВХОДНЫЕ ДАННЫЕ
Сначала вводится количество человек n в классе. Затем последовательность из n чисел, обозначающих рост каждого человека в строю. После этого рост x Пети. Все числа натуральные и не превышают 200.
ИСХОДНЫЕ ДАННЫЕ
Вывести номер, под которым Петя должен стать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен стать после них.

СОБСНА РЕШЕНИЕ,Заходит только половина тестов,на остальные программа просто не дает ответ,никакой.Что может быть не так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
#include <iostream>
#include <stdio.h>

using namespace std;


int main(){
    
   
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    
    int a[100]={0};
    int k;
    cin>>k;//считываем кол-во людей
    k++;//увеличиваем кол-во людей на 1 (включая себя)
    for(int i=0;i<k;i++){
        cin>>a[i];//считываем рост человека
    }
    const int n=a[k-1];//запоминаем свой рост в отдельную константу
    //сортируем массив в порядке убывания(как обычно стоят в шеренге)
    bool massSort=false;
    do{
        massSort=false;
        for (int i=0;i<k-1;i++){
            
            if (a[i]<a[i+1]){
                massSort=true;
                int b=a[i];
                a[i]=a[i+1];
                a[i+1]=b;
            }
        }
    }while (massSort);//массив отсортирован в порядке убывания
    for(int i=k-1;i>=0;i--){//идем по масиву с конца ,ищем свой рост
        if (a[i]==n) {
            cout<<i+1;//нашли свой рост ,вывели в консоль
            break;
        }
    }
   	   return 0;
}
...
Рейтинг: 0 / 0
Шеренга
    #39187375
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему 100? Можно было заложить масштабирование задачи. vector<int> например.
Тем более что STL уже подключен.

Почему выбран метод пузыря?
...
Рейтинг: 0 / 0
Шеренга
    #39187376
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,он выбран только лишь потому что он был сразу под рукой.Метод сортировки здесь не играет ключевую роль,сортирует все нормально.Вопрос почему тесты просираються,ведь вроде алгоритм нормальный.
...
Рейтинг: 0 / 0
Шеренга
    #39187378
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не находишь некий легкий диссонанс или взаимное исключение параграфов. Ты пишешь:
Метод сортировки здесь не играет ключевую роль,сортирует все нормально.
Вопрос почему тесты просираються,ведь вроде алгоритм нормальный.
Я не знаю.
Я в затруднении.
...
Рейтинг: 0 / 0
Шеренга
    #39187382
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы не находишь некий легкий диссонанс или взаимное исключение параграфов. Ты пишешь:
Метод сортировки здесь не играет ключевую роль,сортирует все нормально.
Вопрос почему тесты просираються,ведь вроде алгоритм нормальный.
Я не знаю.
Я в затруднении.
Так дело в том что массив сортируется нормально.В порядке убывания,я проверял,в сортировке косяков нет,это стандартная сортировка пузырьком.Так что не в ней дело.
...
Рейтинг: 0 / 0
Шеренга
    #39187384
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну давай свой input.txt не томи уже.
...
Рейтинг: 0 / 0
Шеренга
    #39187387
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,так у меня его нет.Я отправляю на сервак и там у него свои тесты.
Но как пример вот,держи:
INPUT.TXT:
8
165 163 160 160 157 157 155 154
162
OUTPUT.TXT:
3
...
Рейтинг: 0 / 0
Шеренга
    #39187389
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну правильно. Это условие никогда не сработает.

Код: plaintext
1.
2.
3.
4.
 if (a[i]==n) {
            cout<<i+1;//нашли свой рост ,вывели в консоль
            break; 
        }



Потому что при росте Пети в 162 см его надо искать не среди имеющихся лоботрясов
а на интервале между одним оболтусом и другим. Тоесть между 160 и 163.
...
Рейтинг: 0 / 0
Шеренга
    #39187419
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ванмомас намбаван]

СОБСНА РЕШЕНИЕ,Заходит только половина тестов,на остальные программа просто не дает ответ,никакой.Что может быть не так?/quot]

Просто Петя - редкостный хулиган, и иногда не приходит на построение
...
Рейтинг: 0 / 0
Шеренга
    #39187472
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,я засовываю рост Пети в шеренгу,как будто он уже там есть,и запоминаю его в отдельную константу.Сортирую шерегу что бы все стали по росту и Петя которого я туда засунул в том числе,после того как отсортирую смотрю на какое место он встал.
Код: plaintext
1.
2.
3.
4.
5.
6.
 cin>>k;//считываем кол-во людей
    k++;//увеличиваем кол-во людей на 1 (включая Петю!)
    for(int i=0;i<k;i++){
        cin>>a[i];//считываем рост человека(вместе с Петей)
    }
    const int n=a[k-1];//запоминаем Петин рост в отдельную константу
...
Рейтинг: 0 / 0
Шеренга
    #39187474
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ванмомас намбаван, а если уже есть один школоло школьник с таким-же ростом как Пеця?
...
Рейтинг: 0 / 0
Шеренга
    #39187481
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,он становиться после него
...
Рейтинг: 0 / 0
Шеренга
    #39187519
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь вопрос на засыпку: зачем в решении этой задачи вообще сортировка?
...
Рейтинг: 0 / 0
Шеренга
    #39187526
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут тесткейс некрасивый.
Код: sql
1.
2.
3.
4.
INPUT.TXT:
8
165 163 160 160 157 157 155 154
162


Во первых - непонятно почему автор его специально отсортировал? Это зачем?
Проверить краевой вариант сортировки? Оценить наихудший случай?

Потом непонятно, почему Петя сортируется сразу вместе со всеми.
В этом есть какая-то натяжка. Или нестыковочка. Изначально Петя - отсутствует.

По логике мы должны сначала сортировать Петровых и Ивановых и прочих Кацманов.
...
Рейтинг: 0 / 0
Шеренга
    #39187532
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аффтар ниасилил алгоритм пузырьковой сортировки =)
...
Рейтинг: 0 / 0
Шеренга
    #39187538
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне вот концептуально, как старому базовику здесь не нравится то что
рост школьника в поиске используется как условие поиска места Пети.

По хорошему, расчёт номера места должен вестись во время вставки.
...
Рейтинг: 0 / 0
Шеренга
    #39187545
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо хорошему, расчёт номера места должен вестись во время вставки.
Авторы задачи попытались её усложнить, поставив целевую величину в конец входного списка. Будь она в начале списка, задача решалась бы не только без сортировки, но ещё и без массивов.
...
Рейтинг: 0 / 0
Шеренга
    #39187557
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglАффтар ниасилил алгоритм пузырьковой сортировки =)
а можешь тыкунуть носом где я его ниасилил ?
...
Рейтинг: 0 / 0
Шеренга
    #39187558
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА теперь вопрос на засыпку: зачем в решении этой задачи вообще сортировка?
Они могут стоят как попала.В задаче есть пример с инпутом где они стоят не по росту
...
Рейтинг: 0 / 0
Шеренга
    #39187559
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМне вот концептуально, как старому базовику здесь не нравится то что
рост школьника в поиске используется как условие поиска места Пети.

По хорошему, расчёт номера места должен вестись во время вставки.
а что в этом плохого,как по мне наоборот удобнее его туда засунуть,остосртировать,и посмотреть куды он встал)
...
Рейтинг: 0 / 0
Шеренга
    #39187604
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ванмомас намбаванmaytonМне вот концептуально, как старому базовику здесь не нравится то что
рост школьника в поиске используется как условие поиска места Пети.

По хорошему, расчёт номера места должен вестись во время вставки.
а что в этом плохого,как по мне наоборот удобнее его туда засунуть,остосртировать,и посмотреть куды он встал)
Это trick. И он сработает в данной задаче. Но я лишний раз акцентируюсь
на том что поиск детей по росту "не даёт" нам Петю Васечкина.

Это просто мой идеологический пунктик. Впрочем делай как хочешь.
...
Рейтинг: 0 / 0
Шеренга
    #39187631
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ванмомас намбаванDimitry SibiryakovА теперь вопрос на засыпку: зачем в решении этой задачи вообще сортировка?
Они могут стоят как попала.В задаче есть пример с инпутом где они стоят не по росту

По условию: "Все числа натуральные и не превышают 200".

Сколько, по-твоему, таких чисел?
...
Рейтинг: 0 / 0
Шеренга
    #39187647
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ванмомас намбаванSiemarglАффтар ниасилил алгоритм пузырьковой сортировки =)
а можешь тыкунуть носом где я его ниасилил ?
В ней 2 вложенных цикла.
...
Рейтинг: 0 / 0
Шеренга
    #39187653
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ванмомас намбаванЗаходит только половина тестов, на остальные программа просто не дает ответ, никакой.
Что может быть не так?

Вероятно, в остальных тестах количество учеников больше 100.
...
Рейтинг: 0 / 0
Шеренга
    #39187657
Фотография ванмомас намбаван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl,можно сделать 2 for ,можно сделать так,если у тебя есть другие варианты то я их с удовольствием приму.НИАСИЛИЛ-это когда она не работает,сортирует не правильно,в данном случае она работает отлично,делая всего ОДИН холостой проход.
...
Рейтинг: 0 / 0
25 сообщений из 57, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Шеренга
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]