Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 18:08   #1
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию Агент 008

Для Агента 008, конечно же, изготовили пропуск, по которому он мог пройти
в любое помещение компании Closed Systems. Специалисты компании Doors
по изготовлению пропусков полагали, что они предусмотрели все - специальную
бумагу, печати, подписи. Однако...
Когда Агент 008 пришел утром в офис компании, он не стал спешить и предъявлять
свой пропуск. И довольно быстро понял, что номера всех пропусков составлены
из одного и того же набора цифр.
Проверьте, является ли пропуск Агента 008 подходящим с точки зрения этого
условия

Формат входного файла input.txt
Первая строка - цифры (однозначные целые числа) через пробел. Все эти (и
только эти) цифры должны входить в номер пропуска. Цифр в строке не более 50
Вторая строка - номер пропуска Агента 008 (целое число длиной, содержащее
не более 50 цифр)

Формат выходного файла output.txt
слово YES, если номер пропуска подходящий, и NO, если не подходящий

Пример входного файла
1 2 6 7 1 1 3 5
1627351

Пример выходного файла
NO


Код:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string s, s1;
    getline(cin, s);
    for (string::iterator it = s.begin() ; it<s.end(); ++it ){
    if (*it == ' ') s.erase(it);}//удалил пробелы
    
    cin>>s1;
    
    for (int i=0; i!=s.length(); ++i) if (s[i]<s[i+1]) {int kk =s[i]; s[i]=s[i+1]; s[i+1]=kk;}
    for (int i=0; i!=s1.length(); ++i) if (s1[i]<s1[i+1]) {int kk =s1[i]; s1[i]=s1[i+1]; s1[i+1]=kk;}
    // отсортировал строки 
        
    if (s1==s) cout<<"YES"; else cout<<"NO";//если строки равны=>код совпадает
    system("PAUSE");
    return EXIT_SUCCESS;
}
Почему сортирует не верно?
boomeer вне форума Ответить с цитированием
Старый 27.11.2010, 19:39   #2
boomeer
Форумчанин
 
Аватар для boomeer
 
Регистрация: 04.08.2010
Сообщений: 110
По умолчанию

переделал вот так, но всеравно не проходит. быть может я что то не замечаю...
Код:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    string s, s1;
    getline(cin, s);
    for (string::iterator it = s.begin() ; it<s.end(); ++it ){
    if (*it == ' ') s.erase(it);}//óäàëèë ïðîáåëû
    int pr=0;
    cin>>s1;
    
    if (s.length()==s1.length()) for (int i=0;i!=s.length(); ++i) for (int j=0;j!=s.length(); ++j) if (s[i]==s1[j]) {++pr; break;}  
    
         
    if (pr==s.length()) cout<<"YES"; else cout<<"NO";//åñëè ñòðîêè ðàâíû=>êîä ñîâïàäàåò
    system("PAUSE");
    return EXIT_SUCCESS;
}
boomeer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
агент маил.ру sf911 Помощь студентам 0 20.07.2010 21:39
Не могу зайти к себе в агент!!! Redisco1985 Безопасность, Шифрование 0 21.12.2009 14:48
Mail.Ru Агент. учётная запись Eglath Софт 4 18.10.2009 07:07
Свой агент Sanek777 Общие вопросы Delphi 0 02.11.2008 17:21