В С++. Помогите плииииз. Как вы помните, месклениты отправились в экспедицию. Однажды...

0 голосов
215 просмотров

В С++. Помогите плииииз.
Как вы помните, месклениты отправились в экспедицию. Однажды руководителю экспедиции потребовалось отправить на разведку специальный отряд, состоящих из лучших мескленитов. Для этого он выстроил всю команду в шеренгу.
Цвет панциря каждого мескленита обозначается заглавной латинской буквой (от "A" до "Z" ). В целях экономии времени руководитель собирается выбрать из шеренги несколько подряд стоящих. Кроме того, он считает, что разведка будет более удачной, если выбранный отряд будет симметричен по цветам панцирей. Например, отряд "RGBGR" будет симметричным, а отряд "RGRB" – нет.
Требуется выбрать из шеренги мескленитов максимально возможный отряд, удволетворяющий данным условиям.
Входные данные
Дана строка, длина которой не превосходит 255 символов – цвета мескленитов в шеренге.
Выходные данные
Выходные данные представляют собой строку – выбраный отряд мескленитов. Если возможных вариантов ответа несколько, то требуется вывести находящийся ближе к началу шеренги.


Информатика (635 баллов) | 215 просмотров
0

Второе прочтение Mission: gravity? Эту задачу тут уже публиковали. Она конкурсная, посему её даже решать не стали.

Дан 1 ответ
0 голосов
Правильный ответ

{Отряд — формирование, состоящее из нескольких человек, достаточно большой численности, сформированное с той или иной целью}
//Но будь по Вашему, мне не сложно
//Dev-C++ 4.9.9.2

#include
#include
using namespace std;

int main(){
    string s,smax,sp;
    int z=0;
    int max=0;
    bool b=true;
    bool bsub=false;
    cin>>s;
    for(int i=0;i     for(int j=i+1;j      if(s[i]==s[j]){
      sp=s.substr(i,j-i+1);
      b=true;
      z=0;
       while((z<=(sp.length()-1)/2)&&b){<br>         b=(sp[z]==sp[sp.length()-z-1]);
         z++;}
       if((b==true)&&(max                                   max=sp.length();
                                   smax="";
                                   smax=sp;
                                   bsub=true;
                                   }
       b=true;
       z=0;}}
      if(bsub==true)cout<<smax;<br>      else
      cout<<s[0];<br>      cin.get();
      cin.get();
     return 0;
}

Пример ввода 1:
CKACCANCKACBCAN
Пример вывода 1:
ACBCA
Пример ввода 2:
С
Пример вывода 2:
C

(38.6k баллов)