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

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

Войти
Регистрация
Восстановить пароль
 
djkah11
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 5
#1

Задача с тимуса - C++

07.07.2012, 11:44. Просмотров 605. Ответов 1
Метки нет (Все метки)

Вот задача с тимуса, возникли с ней проблемы.Я знаю, что на форуме уже есть решение, но всё-таки хотелось бы узнать ошибку в своём кода.
Пока Федя писал условие для задачи
«Летопись GOV», ему пришло в голову,
что бумаги для печати условий может не
хватить. А тут ещё оказалось, что в его
текстовом редакторе нет возможности
определить количество страниц в тексте.
Однако Федя не растерялся и решил сам
написать программу, рассчитывающую
количество страниц по введённому
тексту.
Он знал, что на каждой странице h строк,
а в каждой строке w символов. Между
каждой парой соседних слов в одной
строке ставится ровно один пробел. Если
слово не помещается в строку, Федя не
делит его на слоги для переноса и не
ставит пробел, а просто пишет всё слово с
начала новой строки.
Исходные данные
В первой строке записаны целые числа h ,
w, n — количество строк на странице,
символов в строке и слов в тексте задачи,
соответственно (1 ≤ h , w ≤ 100; 1 ≤ n ≤
10 000). В следующих n строках записан
текст условия, которое написал Федя, по
одному слову в строке. Слова в условии
непусты, имеют длину не более w и
состоят только из строчных и заглавных
латинских букв и знаков препинания
(точка, запятая, восклицательный и
вопросительный знаки). Суммарная
длина всех слов не превосходит 10 000.
Результат
Выведите количество страниц в тексте
условия задачи.
Пример
исходные данные
3 5 6
To
be
or
not
to
be



результат
2
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
    
 
#include <iostream>
 
using namespace std;
 
int main()
{ int  h,n,w; 
cin>>h>>w>>n;
char b[101];
int a,k=w;
int m=1; 
int y=0; 
int i;
for( i=0;i<n;i++) {
        cin>>b;
      a=strlen(b);     
  k=k-a-1;
        if (k<a) {k=w-a; y++; }; 
      
        ;
        if (y>=h) {m++;y=0;};
     
 
        }
      
 
 if (y==0) m-- ;
        cout<<m;
      
 
    return 0;
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 11:44     Задача с тимуса
Посмотрите здесь:

C++ Зaдача на графы с тимуса 1358
C++ задача с Тимуса
задача с Тимуса C++
Задача с тимуса C++
Crash в задаче с тимуса C++
C++ Задачка из тимуса
C++ Задача с Тимуса 1446
Олимпиадная задача с тимуса №1209 C++
C++ Задача с тимуса №1881
Задача с тимуса про сороконожку C++
Предохранители. Задача с тимуса №1327 C++
Задача про Петю и таксиста с тимуса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
07.07.2012, 15:42     Задача с тимуса #2
немного переделал, теперь тесты проходит
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 <iostream> 
using namespace std;
 
int main(void)
{ 
    int h, n, w; 
    cin >> h >> w >> n;
    char b[101];
    int a, k = w, m = 1; 
    for (int i = 0; i != n; ++i) 
    {
        cin >> b;
        a = strlen(b);     
        k -= a;
        if (k < 0)      
        {
            ++m;
            k = w - a - 1;
        }
        else
            --k;
    }
    cout << m / h + (m % h != 0) << endl;
    return 0;    
}
или
с меньшии изменениями
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 h,n,w; 
    cin>>h>>w>>n;
    char b[101];
    int a,k=w;
    int m=1; 
    int y=0; 
    int i;
    for(i=0;i<n;i++)
    {
        cin>>b;
        a=strlen(b);     
        k=k-a-1;
        if (k<-1) 
        {
            k=w-a-1; 
            y++; 
        }
        
        if (y>=h) 
        {
            m++;
            y=0;
        }
    }
    cout<<m;
    return 0;
}
Yandex
Объявления
07.07.2012, 15:42     Задача с тимуса
Ответ Создать тему
Опции темы

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