Afişează mesaje
|
Pagini: [1] 2
|
18
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1211 PalM
|
: Noiembrie 22, 2011, 11:38:01
|
Imi puteti da un test mai mare? nu stiu ce e gresit in sursa mea...  #include<fstream> #include<string.h> using namespace std;
ifstream in("palm.in"); ofstream out("palm.out");
char a[503]; int n,smax=1;
void pal1(int poz) { int i,lung=1;
for(i=poz-1;i!=0 && 2*poz-i<=n;--i) if(a[i]==a[2*poz-i] && a[i]<=a[i+1]) lung+=2; else break;
if(lung>smax) smax=lung; }
void pal2(int poz) { int i,lung=2;
if(a[poz]!=a[poz+1]) return;
for(i=poz-1;i!=0 && 2*poz-i+1<=n;--i) if(a[i]==a[2*poz-i+1] && a[i]<=a[i+1]) lung+=2; else break;
if(lung>smax) smax=lung; }
int main() { int i;
in.getline(a+1,501);
a[0]=90;
n=strlen(a);
if(n!=1 && a[1]==a[2]) smax=2;
for(i=2;i!=n;++i) {
if(i!=1)pal1(i); pal2(i);
}
out << smax;
return 0; }
|
|
|
|