Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Программист
33 / 33 / 8
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1

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

02.10.2011, 00:21. Показов 2943. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.10.2011, 00:21
Ответы с готовыми решениями:

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

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

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

2
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
02.10.2011, 01:09
Whiteha, попробуй убрать void main и поставить int main() {rerurn 0;}
0
Программист
33 / 33 / 8
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
02.10.2011, 13:31  [ТС]
Нет, дело не в этом.(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.10.2011, 13:31
Помогаю со студенческими работами здесь

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

Задача по геометрии. Найти все 14 решений
Здравствуйте, знатоки! Сыну в школе задали задание : найти как можно больше решений задачи, которая имеет, как сказал учитель, 14...

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru