C++
#310
O secvenţă a unui vector se numeşte palindromică dacă primul element ale secvenţei este egal cu ultimul, al doilea cu penultimul, etc.
Cerinţa
Se dă un vector cu n elemente, numere naturale. Determinaţi secvenţa palindromică de lungime maximă.
Date de intrare
Fişierul de intrare secvpal.in conţine pe prima linie numărul n; urmează cele n elemente ale vectorului, dispuse pe mai multe linii şi separate prin spaţii.
Date de ieşire
Fişierul de ieşire secvpal.out va conţine pe prima linie numerele p şi u, reprezentând indicii de început şi sfârşit ai secvenţei determinate.
Restricţii şi precizări
1 ≤ n ≤ 1000;
numerele de pe a doua linie a fişierului de intrare vor avea cel mult 4 cifre;
dacă există mai multe secvenţe palindromice de lungime maximă, se va determina cea mai din stânga;
Exemplu
secvpal.in
12
1 2 10 9 8 5 8 9 10 5 5 10
secvpal.out
3 9
Explicație
Secvenţa palindromică de lungime maximă este 10 9 8 5 8 9 10.
Răspunsuri la întrebare
Răspuns de
8
#include <fstream>
using namespace std;
ifstream cin("secvpal.in");
ofstream cout("secvpal.out");
int n,a[1001],st,dr;
int palindrom(int i,int j)
{
while(i<j)
{
if(a[i]!=a[j])
return 0;
i++;
j--;
}
return 1;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
int i,j,L,Lmax=0;
for(i=1;i<=n;i++)
{
L=0;
for(j=n;j>=i+1;j--)
if(a[i]==a[j])
if(palindrom(i,j))
{
L=j-i;
break;
}
if(L>Lmax)
{
Lmax=L;
st=i;
dr=j;
}
}
cout<<st<<' '<<dr;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
9 ani în urmă
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă