Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Шеренга / 25 сообщений из 57, страница 1 из 3
08.03.2016, 00:31
    #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
08.03.2016, 00:38
    #39187375
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шеренга
Почему 100? Можно было заложить масштабирование задачи. vector<int> например.
Тем более что STL уже подключен.

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

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



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

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

Просто Петя - редкостный хулиган, и иногда не приходит на построение
...
Рейтинг: 0 / 0
08.03.2016, 13:21
    #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
08.03.2016, 13:24
    #39187474
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шеренга
ванмомас намбаван, а если уже есть один школоло школьник с таким-же ростом как Пеця?
...
Рейтинг: 0 / 0
08.03.2016, 13:38
    #39187481
ванмомас намбаван
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шеренга
mayton,он становиться после него
...
Рейтинг: 0 / 0
08.03.2016, 15:02
    #39187519
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шеренга
А теперь вопрос на засыпку: зачем в решении этой задачи вообще сортировка?
...
Рейтинг: 0 / 0
08.03.2016, 15:16
    #39187526
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шеренга
Тут тесткейс некрасивый.
Код: sql
1.
2.
3.
4.
INPUT.TXT:
8
165 163 160 160 157 157 155 154
162


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

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

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

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

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

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

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

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

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

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


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