Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
#1

Задача 1567. SMS-спам и проблема двух решений - C++

02.10.2011, 00:21. Просмотров 1080. Ответов 2
Метки нет (Все метки)

Собственно задача: http://acm.timus.ru/problem.aspx?space=1&num=1567
Проблема в том, что моё решение со switch'ем даёт правильные результаты, в том числе правильно считает пример, но он-лайн проверку не проходит.
Есть аналогичное решение, через if'ы, и оно проходит проверку.
Вопрос - в чём разница? где моя версия неправильно считает?(
P.S. Альтернативный вариант решения мне известен, но поставленный вопрос не даёт покоя.(
Моё:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <cstdio>
#include <iostream>
char str[1001];
//char str;
int search(char v)
{
    switch (v)
    {
        case 'a' : return 1; break;
        case 'd' : return 1; break;
        case 'g' : return 1; break;
        case 'j' : return 1; break;
        case 'm' : return 1; break;
        case 'p' : return 1; break;
        case 's' : return 1; break;
        case 'v' : return 1; break;
        case 'y' : return 1; break;
        case '.' : return 1; break;
        case ' ' : return 1; break;
 
        case 'b' : return 2; break;
        case 'e' : return 2; break;
        case 'h' : return 2; break;
        case 'k' : return 2; break;
        case 'n' : return 2; break;
        case 'q' : return 2; break;
        case 't' : return 2; break;
        case 'w' : return 2; break;
        case 'z' : return 2; break;
        case ',' : return 2; break;
 
        case 'c' : return 3; break;
        case 'f' : return 3; break;
        case 'i' : return 3; break;
        case 'l' : return 3; break;
        case 'o' : return 3; break;
        case 'r' : return 3; break;
        case 'u' : return 3; break;
        case 'x ': return 3; break;
        case '!' : return 3; break;
    }
    return 0;
}
void main()
{
    int sum = 0;
    gets(str);
    //std::cin>>std::noskipws;
    for(int i = 0; i < strlen(str); ++i) sum += search(str[i]);
    //while (std::cin>>str) sum += search(str);
    printf("%d", sum);
    getchar();
}
*В комментах модификация ввода(думал проблема в нём), при которой я также не смог пройти проверку.

Аналогичное решение проходящее проверку:
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
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<math.h>
#include<conio.h>
#include<string>
 
using namespace std;
 
int main() {
 char s;
 int count = 0;
 cin >> noskipws;
 while (cin >> s) {
    if ((s=='a')||
        (s=='d')||
        (s=='g')||
        (s=='j')||
        (s=='m')||
        (s=='p')||
        (s=='s')||
        (s=='v')||
        (s=='y')||
        (s=='.')||
        (s==' ')) {count+=1;}
    if ((s=='b')||
        (s=='e')||
        (s=='h')||
        (s=='k')||
        (s=='n')||
        (s=='q')||
        (s=='t')||
        (s=='w')||
        (s=='z')||
        (s==',')) {count+=2;}
    if ((s=='c')||
        (s=='f')||
        (s=='i')||
        (s=='l')||
        (s=='o')||
        (s=='r')||
        (s=='u')||
        (s=='x')||
        (s=='!')) {count+=3;}
 }
 cout << count;
 getch();
 return 0;
}
Прошу прощения, если кому-то вопрос показался совсем глупым.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 00:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача 1567. SMS-спам и проблема двух решений (C++):

SMS сообщения приходят в папку спам - Смартфоны
Доброе время суток !! Телефон Samsung GT-S5610. Вообщем приходят SMS в папку спам, по сему телефон не издает сигнал о приходе...

Как сделать SMS-оповещение о приходе писем на php с sms.ru - PHP
Всем привет. Подскажите, пожалуйста, как сделать чтобы данные формы на сайте отправлялись не только на почту но и по sms на номер админу...

Задача Коши не имеет решений - Дифференциальные уравнения
Добрый день! Подскажите, пожалуйста. Недавно начал изучать диф.уравнения. Начал решать одно из уравнений и запнулся на решении задачи Коши....

Подскажите, какое из двух решений задачи правильное? - Электричество и магнетизм
Здравствуйте! Вот нашёл 2 решения одной и той же задачи: Две одинаковые круглые пластины площадью S=400см^2 каждая расположены...

Экономическая задача через поиск решений - MS Excel
Подсобите пожалуйста, не могу понять как сделать эти задания:(

Дискретная математика. Задача на нахождение всех int решений - Дискретная математика
Всем привет. Ребят, может кто помочь с 5 заданием? Остальное решено.

2
alkagolik
Заблокирован
02.10.2011, 01:09 #2
Whiteha, попробуй убрать void main и поставить int main() {rerurn 0;}
0
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
02.10.2011, 13:31  [ТС] #3
Нет, дело не в этом.(
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2011, 13:31
Привет! Вот еще темы с ответами:

задача про коробки и шары - слишком много решений - Prolog
Доброго времени суток. Начал изучать пролог - никак не могу добиться корректного решения задачки. Помогите, товарищи форумчане. Есть...

Очень надеюсь на ваше содействие: задача принятия решений - MS Access
Фирма планирует открыть новое предприятие в Арканзасе. В настоящее время имеется возможность построить либо крупное предприятие, либо...

Однокритериальная задача принятия решений в условиях риска и неопределенности - Теория вероятностей
Главный инженер предприятия решает, строить или не строить новую производственную линию, использующую высокую технологию. Если новое...

Определить количество решений у системы двух линейных уравнений с двумя переменными - Pascal ABC
1.Определить количество решений у системы двух линейных уравнений с двумя переменными 2.Определить, каким днем недели является дата,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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