infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Airinei Adrian din Aprilie 05, 2009, 11:26:54



Titlul: 839 Palindrom2
Scris de: Airinei Adrian din Aprilie 05, 2009, 11:26:54
Aici puteti discuta despre problema Palindrom2 (http://infoarena.ro/problema/palindrom2).


Titlul: Răspuns: 839 Palindrom2
Scris de: Craciun Adrian din Aprilie 05, 2009, 12:08:08
Am o intrebare...numele fisierelor de intrare iesire nu este prea lung pentru un "ifstream" si un "ofstream"(compilat cu evaluatorul siteului). Folosesc BC++ 3.1 si programul crea fisierele "palindro.in" si "palindro.out". Toate testele pe care am incercat solutia mea, mi-a dat raspunsul corect :-k


Titlul: Răspuns: 839 Palindrom2
Scris de: gaboru corupt din Aprilie 05, 2009, 12:25:23
Borland C++ 3.1 nu poate retine fisierele cu nume mai mare de 8 caractere, de aceea daca faci in Borland, sa ai grija data viitoare sa pui corect fisierele cand trimiti sursa. Sau mai bine treci pe un alt compilator, gen MinGW sau Dev C++. :)


Titlul: Răspuns: 839 Palindrom2
Scris de: Craciun Adrian din Aprilie 05, 2009, 12:54:33
Am pus corect numele fisierelor:
Cod:
 ifstream f("palindrom2.in");
 ofstream g("palindrom2.out");
Chestia ca programul crea fisierel palindro.out si citea din palindro.in.
 Intrebare a mea e daca problema cu numele fisierelor e de la ifstream-ofstream sau de la bc++

 


Titlul: Răspuns: 839 Palindrom2
Scris de: gaboru corupt din Aprilie 05, 2009, 13:17:01
De la Borland... :)


Titlul: Răspuns: 839 Palindrom2
Scris de: Craciun Adrian din Aprilie 05, 2009, 13:36:01
 Dar daca e de la BC atunci trebuie sa i-au peste 0 puncte. Nu cred ca nu i-au pe solutia mea cel putin 10 puncte pt ca am testat-o destul de riguros. :?
Cod:
#include<fstream.h>
#include<string.h>
char v[1000];
int n;
int _testpalin(int a){
 int da=1,i;
  for(i=a;i<n&&da;i++)
   if(v[i]!=v[n-i+a])
    da=0;
  return da;
 }
int _testsir(){
 int i;
  for(i=n-1;i>=0;i--)
   if(v[i]!=v[n])
    break;
   if(i!=n-1)
    return i;
   else
    return -10;
 }
int _strsc(){
 int i,j,da=0,sp=0;
  sp=_testsir();
  if(sp==-10){
  for(i=n-1;da==0&&i>=0;i--)
   if(_testpalin(i))
   da=1;
  if(da)
   return i;
  else
   return n-1;
  }
  else
   return sp;
  }
int main(){
 int i;
 ifstream f("palindrom2.in");
 ofstream g("palindrom2.out");
 f.getline(v,1024);
 n=strlen(v)-1;
 for(i=0;i<=n;i++)
  g<<v[i];
 for(i=_strsc();i>=0;i--)
  g<<v[i];
 f.close();
 g.close();
 return 0;
 }
Daca stie cineva testele de la aceasta problema rog sa le scrie.


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrici Cezar din Aprilie 06, 2009, 10:14:40
testul 10 are mai mult de 1000 de caractere [-X am citit cu un vector de la 1..1000 si lu-am 90 de pct(am avut grija sa nu citesc caractere goale) dar cu un vector de la 1..1200 i-au 100
la restrictii scrie ca sunt doar 1000 de caractere  [-X


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrei-Bogdan Antonescu din Aprilie 06, 2009, 11:00:04
Da poate sa fie fix 1000 si iei teapa cu vectorul de 1000  :P baga 1001


Titlul: Răspuns: 839 Palindrom2
Scris de: Mihai Calancea din Aprilie 06, 2009, 12:39:49
In general , cand te tine memoria ( si deobicei te tine ) declara mai mult, nu lasa la voia sortii 10 - 20 de puncte pe chestii dinastea si apoi sa " [-X" staff -ul IA. Keep in mind ca indexarea incepe de la 0 , si fiind vorba si de charuri mai ai un \n & stuff.

Si apropo de " [-X" , ai grija la ortografie :)  Ai busit toate cratimele .


Titlul: Răspuns: 839 Palindrom2
Scris de: Craciun Adrian din Aprilie 06, 2009, 12:54:41
e o versiune modificata ca sa incerc sa-mi dau seama unde gresesc. eu inotdeauna pun cu 1 mai mult vectorii :ok:(chiar am grija de asta).
poate cineva cu sursa de 100 sa-mi dea niste teste(cu tot cu solutia corecta) sa vad ce nu merge #-o
P.S: tocmai mi-am dat seama ca nu e din cauza "ifstream" si "ofstream"


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrici Cezar din Aprilie 06, 2009, 19:17:23
In general , cand te tine memoria ( si deobicei te tine ) declara mai mult, nu lasa la voia sortii 10 - 20 de puncte pe chestii dinastea si apoi sa " [-X" staff -ul IA. Keep in mind ca indexarea incepe de la 0 , si fiind vorba si de charuri mai ai un \n & stuff.

Si apropo de " [-X" , ai grija la ortografie :)  Ai busit toate cratimele .
mai lasatima cu romana:)) oricum eu vorbesc de pascal. Pentru cei care lucreaza in pascal le este de folos;)
P.S. si nu merge cu 1001


Titlul: Răspuns: 839 Palindrom2
Scris de: Pripoae Teodor Anton din Aprilie 06, 2009, 20:19:05
mai lasatima cu romana:))

Aici gresesti. Atata timp cat tu nu oferi respect, scriind fara greseli de ortografie, incepand propozitiile cu litera mare, etc, nu poti pretinde respect de la ceilalti. Deci nu poti pretinde sa fi ajutat. Ce-ar fi daca membrii echipei infoarena s-ar apuca sa scrie cu "tz", "sh" si alte aberatii gramaticale + prescurtari numai de ei stiute in enunturile problemelor ? Sau in articole ? Ti-ar placea ?

Nu stiu cine ti-a dat tie statut de helper, dar sincer nu il meriti. Cand o sa inveti sa scrii calumea, fara greseli, si n-o sa mai intrebi la absolut toate problemele pe care le citesti, atunci atunci poate o sa meriti :).


Titlul: Răspuns: 839 Palindrom2
Scris de: Sima Cotizo din Aprilie 06, 2009, 20:24:32
Hai sa caut si eu nod in papura:
si n-o sa mai intrebi la absolut toate problemele care le citesti

Acolo corect e "problemele pe care le citesti" :P ... Oricum, subscriu la ce ai zis, e mai bine sa vorbesti corect pe forum... unele persoane folosesc chiar diacritice ca semn de respect si voi nu puteti sa puneti niste cratime bine?

Oricum, sa nu ne abatem de la subiect... ;)


Titlul: Răspuns: 839 Palindrom2
Scris de: Chibici Tiberiu din Aprilie 08, 2009, 14:12:57
Daca am la intrare un sir:
aba
care este deja palindrom, atunci raspunsul corect este aba sau ababa ?


Titlul: Răspuns: 839 Palindrom2
Scris de: Gabriel Bitis din Aprilie 08, 2009, 14:13:22
aba


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrici Cezar din Aprilie 08, 2009, 21:25:37
mai lasatima cu romana:))

Aici gresesti. Atata timp cat tu nu oferi respect, scriind fara greseli de ortografie, incepand propozitiile cu litera mare, etc, nu poti pretinde respect de la ceilalti. Deci nu poti pretinde sa fi ajutat. Ce-ar fi daca membrii echipei infoarena s-ar apuca sa scrie cu "tz", "sh" si alte aberatii gramaticale + prescurtari numai de ei stiute in enunturile problemelor ? Sau in articole ? Ti-ar placea ?

Nu stiu cine ti-a dat tie statut de helper, dar sincer nu il meriti. Cand o sa inveti sa scrii calumea, fara greseli, si n-o sa mai intrebi la absolut toate problemele pe care le citesti, atunci atunci poate o sa meriti :).

Nu te-am intrebat decat o data sau de 2 ori cum se face o problema :roll:. Nu inteleg de ce crezi ca te-am intrebat la fiecare problema cum se face, dar daca asa crezi tu, atunci eu ma supun, fiind mai mic te ascult neavand ce face. :oops:


Titlul: Răspuns: 839 Palindrom2
Scris de: Pripoae Teodor Anton din Aprilie 09, 2009, 12:02:01
mai lasatima cu romana:))

Aici gresesti. Atata timp cat tu nu oferi respect, scriind fara greseli de ortografie, incepand propozitiile cu litera mare, etc, nu poti pretinde respect de la ceilalti. Deci nu poti pretinde sa fi ajutat. Ce-ar fi daca membrii echipei infoarena s-ar apuca sa scrie cu "tz", "sh" si alte aberatii gramaticale + prescurtari numai de ei stiute in enunturile problemelor ? Sau in articole ? Ti-ar placea ?

Nu stiu cine ti-a dat tie statut de helper, dar sincer nu il meriti. Cand o sa inveti sa scrii calumea, fara greseli, si n-o sa mai intrebi la absolut toate problemele pe care le citesti, atunci atunci poate o sa meriti :).

Nu te-am intrebat decat o data sau de 2 ori cum se face o problema :roll:. Nu inteleg de ce crezi ca te-am intrebat la fiecare problema cum se face, dar daca asa crezi tu, atunci eu ma supun, fiind mai mic te ascult neavand ce face. :oops:

Nu m-am referit de cate ori m-ai intrebat pe mine personal, ci de cate ori ai intrebat pe site, si la cate probleme. Era doar un sfat :).


Titlul: Răspuns: 839 Palindrom2
Scris de: Craciun Adrian din Aprilie 10, 2009, 10:01:43
In sfarsit am reusit sa i-au 100 de puncte :winner1:




Titlul: Răspuns: 839 Palindrom2
Scris de: Stefan Gheorghe din Aprilie 27, 2009, 16:51:01
Ce oare nu e corect la sursa mea???? Cine ma poate ajuta???
#308242


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrici Cezar din Aprilie 27, 2009, 17:54:54
Zi ce ai facut ca nu toti sunt admini:D


Titlul: Răspuns: 839 Palindrom2
Scris de: Dragos Oprica din Aprilie 27, 2009, 21:55:35
Ce oare nu e corect la sursa mea???? Cine ma poate ajuta???
#308242

Si in plus, nici macar nu e sursa ta, e sursa lui Ionescu Vlad. Problema are si solutie oficiala, daca nu reusesti singur; iar daca tot nu reusesti da detalii pe forum despre ce si cum faci.


Titlul: Răspuns: 839 Palindrom2
Scris de: Tertiuc Afanasie din Aprilie 29, 2009, 15:14:32
Cineva poate sa-mi zica ce inseamna "Non-zero exit status."


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrici Cezar din Aprilie 29, 2009, 17:24:23
ca programul tau nu afiseaza nimic asa tin eu minte:d :D
ai dat close(g). ?


Titlul: Răspuns: 839 Palindrom2
Scris de: Florian Marcu din Aprilie 29, 2009, 17:26:23
Citeste  documentatia  (http://infoarena.ro/documentatie/evaluator) .


Titlul: Răspuns: 839 Palindrom2
Scris de: Sima Cotizo din Aprilie 29, 2009, 19:46:19
ca programul tau nu afiseaza nimic asa tin eu minte:d :D
ai dat close(g). ?
Nu e asa. Pascalul zice "nonzero exit status" dintr-o multitudine de motive. Cel mai frecvent se intampla sa iesi dintr-un vector sau sa depasesti limita stivei (o functie recursiva apelata de prea multe ori / un ciclu infinit). Nu cred ca iti poate spune nimeni sigur de ce primesti mesajul ala mai ales fara sa se uite pe sursa ta.


Titlul: Răspuns: 839 Palindrom2
Scris de: Balu Cristian din Mai 18, 2009, 20:48:12
 ](*,) Am facut problema si nu stiu de ce nu imi pun punctele pt ca am incercat testele si imi da bn :angry: :angry: :angry: :angry: :angry: ](*,) ](*,) ](*,)


Titlul: Răspuns: 839 Palindrom2
Scris de: Balu Cristian din Mai 31, 2009, 20:35:24
de ce nu merge imi da 0 puncte uitativa si incercati sursa asta pls.
Cod:
var
     f,g:text;
     s:string;
     a:array[1..100] of string;
     i,l:longint;
begin
        assign(f,'palindrom2.in');
        reset(f);
        read(f,s);
        close(f);
        assign(g,'palindrom2.out');
        rewrite(g);
        write(g,s);
        l:=length(s);
        for i:=l-1 downto 1 do
                write(g,s[i]);
        close(g);
end.

Editat de admin: Foloseste tagul "code" cand postezi surse.


Titlul: Răspuns: 839 Palindrom2
Scris de: Florian Marcu din Mai 31, 2009, 21:42:16
Pentru ca rezolvarea e total incorecta.  :)


Titlul: Răspuns: 839 Palindrom2
Scris de: Bogdan Vlad din Iulie 21, 2009, 08:53:34
helo.. :)
m-am uitat pe sulutiile pentru aceasta problema si.. am implementat.. ce nu e bine?
Cod:
i=0;j=n-1;
while((i<j)&&(ok==1))
{
if(s[i]!=s[j])
                                         ok=0;

i = i + 1;   
j = j - 1;
}
if(ok==0)
for(k=j;k>=0;k--)
fprintf(g,"%c",s[k]);
ma ajuta cnv?  :-s

[editat de moderator] foloseste tagul "code" cand postezi cod pe forum.



nu-mi da pe primul test stie cineva  de ce?  :sad:

[editat de moderator] foloseste butonul "modifica" atunci cand vrei sa postezi consecutiv


Titlul: Răspuns: 839 Palindrom2
Scris de: dinu sorin din Iulie 30, 2009, 23:38:31
Cod:
...
am nevoie de putin ajutor  ???. Nu inteleg de ce iau incorect pe toate testele...


Titlul: Răspuns: 839 Palindrom2
Scris de: Paul-Dan Baltescu din Iulie 31, 2009, 01:25:18
Nu mai posta surse ca sa le verifice altii. Ia cateva exemple, fa un generator, etc. si apoi posteaza pe forum.


Titlul: Răspuns: 839 Palindrom2
Scris de: dinu sorin din Iulie 31, 2009, 11:07:37
Nu mai posta surse ca sa le verifice altii. Ia cateva exemple, fa un generator, etc. si apoi posteaza pe forum.

Ok, scuzele mele.

Am gasit problema, afisam un nullbyte la sfarsitul sirului.


Titlul: Răspuns: 839 Palindrom2
Scris de: Radu Romaniuc din August 02, 2009, 18:11:40
La ultimul test imi da Killed by signal 11(SIGSEGV), din ce cauza, stack overflow nu cred :eyebrow:

L.E. gata, vectorul era prea mic :)


Titlul: Răspuns: 839 Palindrom2
Scris de: Porcescu Alexandru din Septembrie 21, 2009, 21:58:52
Salut! ma chinui de ceva vrem la problema asta  ](*,) :fool:si am incercat in multe feluri sa o rezolv dar iau doar 0 pt;
imi poate spune cineva ce am gresit la sursa asta va rog ....

Cod:
#include<iostream>
#include<fstream>
using namespace std;
int main ()
{
ifstream x("palindrom2.in",ios::ate);
ofstream y("palindrom2.out");
char c;
short n=x.tellg(),i;
x.seekg(0,ios::beg);
for(i=1;i<=n;i++)
{
    x.get(c);
    y<<c;
}
if(n%10==0)
i=0;
else i=1;
for(n=n-1;n>=i;n--)
{
x.seekg(n,ios::beg);
x.get(c);
y<<c;
}
x.close();
y.close();
return 0;
}

[Editat de moderator] Foloseste tagul [ code] atunci cand postezi cod sursa.


Titlul: Răspuns: 839 Palindrom2
Scris de: Halalai Tudor Andrei din Martie 25, 2010, 10:42:23
Ce inseamna eroarea asta?
Citat
error: 'strrev' was not declared in this scope
[\quote]
va dau si codul:
Cod:

#include<fstream.h>
#include<string.h>
int main()
{
 int nr,i,j,p1,p,h,k,x;
 char s[1002],q[1002];
 ifstream f("palindrom2.in");
 ofstream g("palindrom2.out");
 f>>s;
 strcpy(q,s);
 strrev(q);
 if(strcmp(s,q)==0)g<<s;
 else{
 nr=0;
 x=strlen(s)-1;
 for(i=x;i>=0;i--)
  for(j=0;j<=i;j++)
   {
    if(s[i]==s[j]){nr++;
    if(s[i]==s[j]&&nr==1){p=j;p1=i;}}
    else nr=0;
   }
 if(nr!=0)
 {
  strncat(s,s,nr+1);
  g<<s;
 }
 else
 {
  g<<s;
  strrev(s);
  g<<s;
 }
}
return 0;
}


Titlul: Răspuns: 839 Palindrom2
Scris de: Simoiu Robert din Martie 25, 2010, 10:43:50
Functia strrev nu este in bibliotecile c++, de accea trebuie sa faci tu de mana acea functie :).


Titlul: Răspuns: 839 Palindrom2
Scris de: Halalai Tudor Andrei din Martie 25, 2010, 11:17:24
 :mrgreen:Stiam asta.
da' nu ai mai intrat pe mes de mult....


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrei Geogescu din Martie 25, 2010, 19:35:42
Cod:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
int main()
{char a[200001],b,c[200001];
long i,k=0;
ifstream f("palindrom2.in");
ofstream g("palindrom2.out");
f.getline(a,200000);
i=strlen(a)-1;
b=a[i-1];
while(i!=0)
{if(a[i]!=b)
i=0;
else
{k++;
i--;}
}
if(k==0)
{strcpy(c,a);
strcpy(a+strlen(a)-1,a+strlen(a));
strcat(c,strrev(a));
g<<c;}

else
{strcpy(c,a);
strcpy(c+strlen(c)-k+1,c+strlen(c));
strcpy(a+strlen(a)-k,a+strlen(a));
strcat(c,strrev(a));
g<<c;
}

return 0;}
De ce primesc aceste banale erori de compilare?
la mine merge minunat,compilatorul fiind minGW
este de'a dreptul demoralizant
user.cpp:22: error: 'strrev' was not declared in this scope
user.cpp:29: error: 'strrev' was not declared in this scope

[editat de moderator] folositi tag-ul "code" cand postati cod...


Titlul: Răspuns: 839 Palindrom2
Scris de: Mihai Calancea din Martie 25, 2010, 19:46:31
2 posturi mai sus dude , 2.


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrei C. din Iunie 07, 2011, 02:51:50
 :eyebrow: De ce patesc asa (http://infoarena.ro/job_detail/594324) pe urmatoarea sursa:
Cod:
int main(){

  return 0;

}

L.E: In caz ca nu sunt indeajuns de clar, problema mea este ca original incercam sa declar un vector (char) C[1000] (~1kB), dar conform evaluatorului imi iesea din memorie. Dupa cateva incercari am trimis pana la urma o sursa goala sa vad ce se intimpla si a iesit si aceea din memorie.


Titlul: Răspuns: 839 Palindrom2
Scris de: Adrian Budau din Iunie 11, 2011, 10:34:17
E o problema de evaluator. Sursa mea care initial lua 100 de puncte acum ia Memory limit exceeded pe toate testele. Poate acum se aduna marimea executabilului la memorie (la mine are aproximativ ~600 kilo bytes).
Cineva din admini ar trebui sa se uite peste eval. Tu nu te mai stresa cu ea deocamdata ca nu ai ce face


Titlul: Răspuns: 839 Palindrom2
Scris de: Savin Tiberiu din Iunie 11, 2011, 16:06:00
Mda pare sa fie o problema acolo. E destul de nasol cu probleme care au o limita de memorie atat de stransa deoarece sa mai adauga chestii in plus fata de memoria declarata efectiv in program.

@Budau: Eu stiu ca marimea executabilului s-a adunat intotdeauna la memoria folosita.


Titlul: Răspuns: 839 Palindrom2
Scris de: Adrian Budau din Iunie 12, 2011, 19:50:51
Acum aceeasi sursa ia Killed by Signal 11 pe toate testele. Nu cred ca e gresita avand in vedere ca initial lua 100 de puncte.

L.E: Greseam limitele. Iau 100 acum deci si-a revenit
@Tiberiu Eu credeam ca memoria unui program pe infoarena e marimea afisata + marimea executabilului (asa mi s-ar parea normal sa intri in cei 640 de kilobytes) altfel ar fi un pic cam dificil, sau imposibil in cei 64 de kilobytes cum a fost la aceasta problema.


Titlul: Răspuns: 839 Palindrom2
Scris de: Pripoae Teodor Anton din Iunie 13, 2011, 11:13:45
Ar trebui sa intre lejer, nu vad de ce voua va consuma asa multa memorie.

http://infoarena.ro/job_detail/300313


Titlul: Răspuns: 839 Palindrom2
Scris de: Andrei C. din Iunie 13, 2011, 15:11:31
Ar trebui sa intre lejer, nu vad de ce voua va consuma asa multa memorie.

http://infoarena.ro/job_detail/300313

S-a corectat deja.


Titlul: Răspuns: 839 Palindrom2
Scris de: serediuc constantin din Iunie 22, 2011, 07:12:35
imi puteti spune daca sirul de caractere de le eveuator are si spatii pentru ca eu am trimis o rezolvare care pe pc merge perfect in multe cazuri si in diferite lungimi de sir dar am citit sirul cu >> si imi da incorect la 9 din 10


Titlul: Răspuns: 839 Palindrom2
Scris de: Paul-Dan Baltescu din Iunie 22, 2011, 07:28:48
Citat
Se consideră un şir de caractere format din litere mici ale alfabetului englez.

Deci nu contine spatii.


Titlul: Răspuns: 839 Palindrom2
Scris de: Aiordachioaei Marius din Martie 26, 2012, 08:39:04
poate cineva sa-mi dea niste teste??
tot iau 50p.


Titlul: Răspuns: 839 Palindrom2
Scris de: George Roman din Martie 02, 2014, 15:17:40
Imi spune cineva si mie ce e gresit la solutia mea?

Cod:
#include <fstream>
#include <string>

using namespace std;

ifstream in("palindrom2.in",ios::in);
ofstream out("palindrom2.out",ios::out);

int main()
{
    string s1;

    in>>s1;

    out<<s1;

    for(int i=s1.size()-2;i>=0;--i)
    {
        out<<s1[i];
    }

    in.close();
    out.close();

    return 0;
}


Titlul: Răspuns: 839 Palindrom2
Scris de: Alexandru Valeanu din Martie 02, 2014, 17:03:59
Incearca testul "baaa".


Titlul: Răspuns: 839 Palindrom2
Scris de: George Roman din Martie 02, 2014, 18:01:55
Imi da "baaaaab", ceea ce e corect.


Titlul: Răspuns: 839 Palindrom2
Scris de: Alexandru Valeanu din Martie 02, 2014, 18:40:46
Da, dar nu e minim.


Titlul: Răspuns: 839 Palindrom2
Scris de: George Roman din Martie 02, 2014, 18:56:16
 :aha:
Ok, am inteles ce am gresit.


Titlul: Răspuns: 839 Palindrom2
Scris de: Reality din Iulie 22, 2014, 16:49:57
poate cineva sa ma ajute
iau 0 cu solutia
#include <fstream>
#define nmax 20001
using namespace std;
ifstream fi("palindrom2.in");
ofstream fo("palindrom2.out");
char s[nmax];
int corespunde(int p)
{
   for (int i=1;i<=(p+1)/2;++i)
      if (s!=s[p-i+1])
         return 1;
   return 0;     
}
int main(void)
{
   int n=0;
   while (!fi.eof())
     {
         ++n;
        fi.get(s[n]);
        if (s[n]=='\n')
          --n;
      }
   int ok=1;
   int i;
   int p=n;
   if (n%2)
     --p;
   if (corespunde(n)) 
   for (i=1;i<=p && ok;++i)
   {
      for (int j=i;j>0;--j)
          s[n+j]=s[i-j+1];         
      ok=corespunde(n+i);   
   }
   n+=i;
   for (i=1;i<=n;++i)
      fo<<s
   fo.close();
   return 0;   
}


Titlul: Răspuns: 839 Palindrom2
Scris de: Reality din Iulie 26, 2014, 12:20:20
poate cineva sa ma ajute
iau 0 cu solutia
#include <fstream>
#define nmax 20001
using namespace std;
ifstream fi("palindrom2.in");
ofstream fo("palindrom2.out");
char s[nmax];
int corespunde(int p)
{
   for (int i=1;i<=(p+1)/2;++i)
      if (s!=s[p-i+1])
         return 1;
   return 0;     
}
int main(void)
{
   int n=0;
   while (!fi.eof())
     {
         ++n;
        fi.get(s[n]);
        if (s[n]=='\n')
          --n;
      }
   int ok=1;
   int i;
   int p=n;
   if (n%2)
     --p;
   if (corespunde(n)) 
   for (i=1;i<=p && ok;++i)
   {
      for (int j=i;j>0;--j)
          s[n+j]=s[i-j+1];         
      ok=corespunde(n+i);   
   }
   n+=i;
   for (i=1;i<=n;++i)
      fo<<s
   fo.close();
   return 0;   
}
problema sa rezolvat