Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/68: Рейтинг темы: голосов - 68, средняя оценка - 4.85
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
1

Какое наибольшее количество пар обуви можно надеть одновременно?

08.04.2016, 00:17. Показов 13463. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В обувном магазине продается обувь разного размера. Известно, что одну пару обуви можно надеть на другую, если она хотя бы на три размера больше. В магазин пришел покупатель. Требуется определить, какое наибольшее количество пар обуви сможет предложить ему продавец так, чтобы он смог надеть их все одновременно.

Входные данные
Сначала вводится размер ноги покупателя (обувь меньшего размера он надеть не сможет), затем количество пар обуви в магазине и размер каждой пары. Размер — натуральное число, не превосходящее 100, количество пар обуви в магазине не превосходит 1000.

Выходные данные
Выведите единственное число — максимальное количество пар обуви.

Sample Input:
26
5
30 35 40 41 42

Sample Output: 3

Условие проверки надо записать.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
int main(){
    int foot, *boot,n;
    scanf("%d",&foot);
    scanf ("%d",&n);
    int i;
    boot=(int*) malloc(n*sizeof(int));
    for (i=0;i<n;i++){
        scanf("%d",&boot[n]);
    }
    
    // условие проверки 
      
    std::cout<< n;
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2016, 00:17
Ответы с готовыми решениями:

Наибольшее кол-во обуви, которое можно одеть одновременно
В обувном магазине продается обувь разного размера. Известно, что одну пару обуви можно надеть на...

Какое наибольшее количество пар обуви сможет предложить продавец, чтобы покупатель смог одеть их одновременно?
В обувном магазине страны великанов продается обувь разного размера. Известно, что одну пару обуви...

Какое наибольшее количество людей могут остаться без подходящей для них пары обуви?
40 человек заходят в помещение и разуваются. Затем они по очереди выходят, надевая произвольную...

Какое наибольшее количество пар (a, b) таких, что a делится на b?
Из чисел 1, 2, 3, . . . , 1799 выбран набор из 1200 попарно различных чисел. Какое наибольшее...

10
165 / 164 / 124
Регистрация: 19.01.2016
Сообщений: 594
Записей в блоге: 1
08.04.2016, 10:31 2
AGPro, Не совсем уверен конечно, но все-же, как вариант... Протестируй,посмотри...
C++
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
#include <iostream>
using namespace std;
 
int main()
{
    int n,m,k=0;
    cout<<"Введите размер обуви: ";
    cin>>n;
    cout<<"Введите количество предлогаемых пар: ";
    cin>>m;
    
    int *arr=new int[m];
    cout<<"Введите размеры обуви: ";
    for ( int i=0;i<m;i++)
        cin>>arr[i];
    
    int cnt=0,l=3;
    for (int i=0;i<m;i++){
        if (n>arr[i]){
            cout<<"Ваш размер больше предложенных! ";
            return 1;
        }
        if (n<=arr[i]+l && cnt<1)
            cnt++;
        if (arr[i+1]-arr[i]>=l && cnt>=1)
            cnt++;}
    cout<<"Количество пар: "<<cnt-1;
    
    delete [] arr;
    system("pause");
    return 0;
}
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
08.04.2016, 16:59  [ТС] 3
-ДоМоВоЙ-, немного не правильно
Failed test #1. Wrong answer
Input:
26
5
30 35 40 41 42
Your output:
2
Correct output:
3
0
1642 / 1091 / 487
Регистрация: 17.07.2012
Сообщений: 5,345
08.04.2016, 17:07 4
Отсортировать массив и за один цикл найти ответ.
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
08.04.2016, 17:10  [ТС] 5
а если так

C++
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
#include <iostream>
using namespace std;
 
int main()
{
    int n,m,k=0;
   // cout<<"Введите размер обуви: ";
    cin>>n;
  //  cout<<"Введите количество предлогаемых пар: ";
    cin>>m;
    
    int *arr=new int[m];
  //  cout<<"Введите размеры обуви: ";
    for ( int i=0;i<m;i++)
        cin>>arr[i];
    
    int cnt=0,l=3;
    for (int i=0;i<m;i++){
        if (n>arr[i]){
   //         cout<<"Ваш размер больше предложенных! ";
            return 1;
        }
        if (n<=arr[i]+l && cnt<1)
            cnt++;
        if (arr[i+1]-arr[i]>=l && cnt>=1)
            cnt++;}
   // cout<<//"Количество пар: "
    cout <<cnt;
    
    delete [] arr;
    system("pause");
    return 0;
}
то

Failed test #4. Run time error:
0
165 / 164 / 124
Регистрация: 19.01.2016
Сообщений: 594
Записей в блоге: 1
08.04.2016, 19:05 6
AGPro,Попробуйте так...
C++
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
#include <iostream>
using namespace std;
 
int main()
{
    int n,m,k=0;
    cout<<"Введите размер обуви: ";
    cin>>n;
    cout<<"Введите количество предлогаемых пар: ";
    cin>>m;
    
    int *arr=new int[m];
    cout<<"Введите размеры обуви: ";
    for ( int i=0;i<m;i++)
        cin>>arr[i];
    
    int cnt=0,l=3;
    bool flag=true;
    for (int i=0;i<m-1;i++){
        if (n>arr[i]){
            cout<<"Ваш размер больше предложенных! ";
            return 1;
        }
        if (n<=arr[i]+l && flag==true)
           { cnt++;flag=false;}
        if ((arr[i+1]-arr[i]>=l) && flag==false)
            cnt++;}
    cout<<"Количество пар: "<<cnt;
    
    delete [] arr;
    system("pause");
    return 0;
}
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
08.04.2016, 23:27  [ТС] 7
-ДоМоВоЙ-, странно но
Failed test #3. Wrong answer
т.е. предыдущий код тест3 прошел, но встал на 4ом.
0
68 / 68 / 37
Регистрация: 26.10.2013
Сообщений: 198
09.04.2016, 00:14 8
AGPro, Я так понимаю, что размеры обуви подаются по возрастанию и не надо массив сортировать?
C++
1
2
3
4
5
6
7
8
9
int count = 0;
    int curSize = n - 3;
    for(int i = 0; i < m; i++) {
        if(arr[i] - curSize >= 3) {
            count++;
            curSize = arr[i];
        }
    }
    cout<<count<<endl;
0
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
09.04.2016, 12:32  [ТС] 9
RQdan, почти правильно, до 13-ого теста дошли
Failed test #13. Wrong answer

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 int main()
{
    int n,m,k=0;
       cin>>n;
      cin>>m;
        int *arr=new int[m];
      for ( int i=0;i<m;i++)
        cin>>arr[i];
int count = 0;
    int curSize = n - 3;
    for(int i = 0; i < m; i++) {
        if(arr[i] - curSize >= 3) {
            count++;
            curSize = arr[i];
        }
    }
    cout<<count<<endl;
delete [] arr;
    system("pause");
    return 0;
}
0
68 / 68 / 37
Регистрация: 26.10.2013
Сообщений: 198
09.04.2016, 15:58 10
Цитата Сообщение от AGPro Посмотреть сообщение
почти правильно, до 13-ого теста дошли
Failed test #13. Wrong answer
Единственное, что приходит на ум: массив все же надо сортировать - в моем коде или алгоритме ошибки вряд ли есть.
Разве что необходимы проверки на граничные условия, но это вряд ли, поскольку в условии нет никаких инструкций по поводу ответа в таких случаях.

C++
1
2
3
4
5
6
7
8
9
for(int i = 0; i < m - 1; i++) {
  for(int j = i + 1; j < m; j++) {
    if(arr[j] < arr[i]) {
       int tmp = arr[i];
       arr[i] = arr[j];
       arr[j] = tmp;
    }
  }
}
1
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
09.04.2016, 18:06  [ТС] 11
RQdan, Точно. Все Ок! Большое +Спасибо!
0
09.04.2016, 18:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 18:06
Помогаю со студенческими работами здесь

Какое наибольшее количество философов могло обедать одновременно?
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь...

Какое наибольшее количество философов могло обедать одновременно
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь...

Какое наибольшее количество философов могло обедать одновременно?
На некотором острове жили n философов, которые проводили время за размышлениями, иногда прерываясь...

Какое наибольшее количество бутылок воды можно купить, имея некоторую сумму денег
1. Бутылка воды стоит 45 копеек. Пустые бутылки сдаются по 20 копеек, и на полученные деньги опять...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru