Поделитесь своими знаниями, ответьте на вопрос:
При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ. выполняется, пока условие истинно. В конструкции: ЕСЛИ < условие > ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ выполняется команда1 (если условие истинно) или команда2 (если условие ложно Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся. Дана программа "Проникновение". Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)? НАЧАЛО ПОКА < справа свободно ИЛИ снизу свободно > ПОКА < справа свободно > вправо КОНЕЦ ПОКА ПОКА < снизу свободно > вниз КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
//Но будь по Вашему, мне не сложно
//Dev-C++ 4.9.9.2
#include <iostream>
#include <string>
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<s.length();i++)
for(int j=i+1;j<s.length();j++){
if(s[i]==s[j]){
sp=s.substr(i,j-i+1);
b=true;
z=0;
while((z<=(sp.length()-1)/2)&&b){
b=(sp[z]==sp[sp.length()-z-1]);
z++;}
if((b==true)&&(max<sp.length())){
max=sp.length();
smax="";
smax=sp;
bsub=true;
}
b=true;
z=0;}}
if(bsub==true)cout<<smax;
else
cout<<s[0];
cin.get();
cin.get();
return 0;
}
Пример ввода 1:
CKACCANCKACBCAN
Пример вывода 1:
ACBCA
Пример ввода 2:
С
Пример вывода 2:
C