Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
#1

Честный раздел урожая из N ананасов - C++

16.12.2011, 16:14. Просмотров 364. Ответов 9
Метки нет (Все метки)

чет не получается, помогите плис!
http://olymp.krsu.edu.kg/GeneralProb...24&format=html

а вот я так решал но выводит сервер не правильный ответ(,может алгоритм не правильный
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 <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
double n,m,res;
int main(){
 int num;
 scanf("%lf%lf",&n,&m);
 
 num=n/(m+1);
 res=n-(num+1);
 if((num+1)<res/m)
 {
   printf("No solution\n");
  
 
   return 0;
 }
 printf("%d\n",(num+1));
 
 
 for (int i=0;i<m-1;i++)
   printf("%d ",num);
 
 if((int)res%int(m)==0)
   printf("%d\n",num);
 else
   printf("%d\n",num-1);
 
 system("pause");
 return 0;
}
Добавлено через 2 часа 37 минут
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Честный раздел урожая из N ананасов (C++):

Легальный спам или Честный пиар - Web
Здраствуйте, уважаемый сайт. Можете не пугаться, спама здесь не будет. Просто я- Глава Клуба одного форума, и у меня возник вопрос о...

Подскажите честный сервис для ремонта материнки - Материнские платы
Здравствуйте, есть кто в Москве может починить материнскую плату -GA-P55A-UD4 не запускается, похоже сгорел южный мост после КЗ, про него...

Задачка про сбор урожая - Prolog
Саша, Юля и Оксана помогали собирать урожай - малину, смородину и клубнику. Каждый из них собирал что-то одно. Кто что собирал, если...

Составить программу расчёта величины программируемого урожая (ц/га) по формуле - Visual Basic
Программа должна быть написана в двух вариантах: 1)использовать For ... To.. Step, Next 2) использовать IF... GO TO Составить...

Записи с вариантами: Вычислить средний вес урожая с грядки для каждого дачника - Turbo Pascal
1. Для каждого дачника даны сведения: фамилия, название овоща и урожай с каждой из пяти грядок. a. Создать массив записей дачников. ...

Компьютерная графика: смоделировать период жизни яблони от весны (цветение) до осени (сбор урожая) - C++ Builder
Здравствуйте, не могу реализовать задачу, в которой нужно смоделировать период жизни яблони от весны (цветение) до осени (сбор урожая)....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
golatin
266 / 223 / 43
Регистрация: 12.10.2011
Сообщений: 328
Завершенные тесты: 1
16.12.2011, 18:02 #2
Зачем
C
1
for (int i=0;i<m-1;i++)
, т.е. (m-2) раз выводить num
C
1
printf("%d ",num);

Зачем double
C
1
double n,m,res;
превращать в int
C
1
(int)res%int(m)
Да, и алгоритм вроде не верен(если он есть ), вроде отсутствием решения будет
http://www.cyberforum.ru/cgi-bin/latex.cgi?N\equiv 2(\begin{matrix}mod & (M+1)\end{matrix}), т.е.
C
1
if(N%(M+1)==2){printf("No solution\n");}
Но может, я и ошибаюсь...
videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
17.12.2011, 08:14  [ТС] #3
теперь тоже не принимает
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
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int n,m,res;
int main(){
    int num;
    scanf("%d%d",&n,&m);
 
    num=n/(m+1);
    res=n-(num+1);
    if(n%(m+1)==2){
        printf("No solution\n");
        return 0;
    }
    printf("%d\n",(num+1));
      int x=res/num; 
      for(int i=0;i<x;i++)
     printf("%d ",num);
    for(int i=0;i<m-x;i++)
     printf("%d ",num-1);
    printf("\n");
    system("pause");
    return 0;
}

alkagolik
Заблокирован
17.12.2011, 09:29 #4
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
34
35
36
37
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    int M = 6, N = 116, bos;
    int tmp = 0, i = 0;
 
    while ( (N - i++) % (M + 1) )
        ++tmp;
    i = 0;
 
    if ( tmp == 2 )
        puts("No SOLUTOIN");
    else if ( !tmp )
    {
        bos = N / M + 1;
        N -= bos;
        tmp = N % M;
 
        printf("\nbos = %i", bos);
        i = 0;
        while ( i++ < M )
            printf("\n4elyaDb = %i", ( N / M + ( tmp-- > 0 ) ) );
    }
    else
    {
        bos = N / (M + 1) + ( ( tmp > 1 ) ? 2 : 1 );
        tmp = ( ( tmp > 1 ) ? tmp - 2 : 0 );
 
        printf("\nbos = %i", bos);
        i = 0;
        while ( i++ < M )
            printf("\n4elyaDb = %i", ( N / (M + 1) + ( tmp-- > 0 ) ) );
    }
    return 0;
}
videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
17.12.2011, 09:37  [ТС] #5
если N=100 M=3
ваш код выдает
bos =34
4elyaDb = 22
4elyaDb = 22
4elyaDb = 22
а должен
26
25 25 24
alkagolik
Заблокирован
17.12.2011, 09:53 #6
строка 17
C
1
bos = N / (M + 1) + 1;
Добавлено через 1 минуту
100% уверен что алгоритм построен верно. лень тестировать
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 14:15 #7
А если как-то так...
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>
#include <vector>
 
void main() 
{
    int N,M;
    std::cin >> N >> M;
 
    std::vector<int> res;
    res.resize(M+1);
    res[0] = 1; --N;
    
    int buf = N/(M+1);
    int ost = N - buf*(M+1);
 
    if(ost == 1)
    {
        std::cout << "No solution" << std::endl;
        system("pause");
        return;
    }
 
    for(int i = 0;i<ost;++i)
        res[i]++;
 
    std::cout << (res[0]+buf) << std::endl;
    for(int i = 1;i<M+1;++i)
        std::cout << (res[i]+buf) << " ";
 
    system("pause");
    return;
}
На тех примерах работает

Добавлено через 16 минут
Да и вообще работает - Accepted) Ну немного надо код подогнать под требования соревнования и будет ок.
videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
17.12.2011, 15:18  [ТС] #8
не знаю как вы аксептили,отправил ваш код и выдает вронг ансве на тесте 1
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 15:21 #9
Я же написал, что нужно вначале подогнать код под правила соревнования.
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
34
35
36
37
#include <iostream>
#include <vector>
 
void main() 
{
    int N,M;
    std::cin >> N >> M;
 
    if(N < 100 || N > 10000 || M < 2 || M > 10)
    {
        std::cout << "No solution" << std::endl;
        return;
    }
 
    std::vector<int> res;
    res.resize(M+1);
    res[0] = 1; --N;
 
    int buf = N/(M+1);
    int ost = N - buf*(M+1);
 
    if(ost == 1)
    {
        std::cout << "No solution" << std::endl;
        return;
    }
 
    for(int i = 0;i<ost;++i)
        res[i]++;
 
    std::cout << (res[0]+buf) << std::endl;
    for(int i = 1;i<M;++i)
        std::cout << (res[i]+buf) << " ";
    std::cout << (res[M]+buf);
 
    return;
}
videolord
48 / 14 / 1
Регистрация: 20.02.2011
Сообщений: 152
17.12.2011, 15:47  [ТС] #10
спасибо огромное вам I.M.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 15:47
Привет! Вот еще темы с ответами:

Найти периметр, площадь и масса урожая, собранного с прямоугольного участка AxB, если известна урожайность с 1кв.м - Turbo Pascal
Помогите с решением задач 2 задача. периметр, площадь и масса урожая, собранного с прямоугольного участка AxB, если известна...

Блок-схемы алгоритма "Расчет потери урожая в весовом виде" - Pascal ABC
Помогите составить блок схемы алгоритма для следующих задач: 1) Составить программу расчета потери урожая в весовом виде по с/х культуре...

Как установить на виртуальную машину: Win 7 на primary раздел + Win XP на extended раздел ? - Эмуляторы
Всем привет! Задали лабу - поставить 2 Виндовса на 1 виртуальную машину. Все бы ничего, да задание такое: &quot;Виндовс 7 должна быть на...

раздел и под раздел - PHP
всем привет. ни как не могу сообразить как сделать выплывающие меню с помощью селекта, ajax и javascript. написал код, в первом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.12.2011, 15:47
Ответ Создать тему
Опции темы

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