• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Problema palc, Campion 2009

1
  • Publicat de Andrei Avădănei
  • în C/C++ · Probleme algoritmică · Tehnic
  • — 5 dec., 2009 at 1:31 pm

Un sir de caractere se numeste palindrom daca se citeste la fel de le stanga la dreapta si de la dreapta la stanga, de exemplu „capac”, „12321”.

Åžirul se va numi palindrom ciclic daca se transforma in palindrom prin o serie de permutari ciclice a elementelor sale. O permutare ciclica a elementelor sirului de caractere este deplasarea lor cu o pozitie spre stanga (in acest caz primul element trece in ultima pozitie) sau spre dreapta (ultimul element trece in prima pozitie) De exemplu, AABB se transforma in ABBA prin o singura permutare ciclica la stanga; 345432112 – prin doua permutari ciclice la dreapta (23453211; 123454321) sau prin sapte permutari (454321123; 543211234; 432112345; 321123454; 211234543; 112345432; 123454321).

Cerinta

Scrieti un program, care sa determine daca un sir dat de caractere este un palindrom ciclic sau nu, precum si numarul minim de permutari ciclice ale sirului de caractere, care il transforma in palindrom.

Date de intrare

Fisierul de intrare palc.in va contine o singura linie pe care va fi scris sirul de caractere S.

Date de iesire

Fisierul text palc.out va contine o singura linie pe care va fi scris un singur numar intreg: -1, daca sirul de caractere S nu poate fi transformat in palindrom prin permutari ciclice, respectiv numarul minim de permutari ciclice care transforma sirul de caractere S in palindrom.

Restrictii

  • Lungimea sirului de caractere S < = 200
  • Åžirul de caractere S poate contine numai litere, cifre si spatii.

Exemple

palc.in palc.out palc.in palc.out palc.in palc.out
2341
-1 aab
1 345432112
2

Solutie Oficiala

Se vor realiza cel mult k/2 permutari ciclice spre stanga si spre dreapta. La fiecare permutare se verifica daca cel putin unul dintre sirurile obtinute este palindrom. Daca in nici una din directii nu s-a obtinut palindromul prin k/2 permutari rezultatul este -1. Altfel se inscrie indicele transformarii care genereaza palindromul.

Solutia mea(mai interesanta si mai detaliata)

Solutia de mai sus mi s-a parut putin cam neinteresanta din punctul de vedere al lucrurilor noi invatate.Metoda pe care am abordat-o eu a fost dublarea sirului de caractere si incepand de la i=0 pana la n(lungimea sirului initial) am verificat daca avem un palindrom.Solutia este MIN(i,n-i).

Descarcati solutia la problema palc,Campion 2009 – runda 4

Daca acest articol contine o greseala, selecteaza cuvintele sau fraza gresita si tasteaza combinatia de taste Shift + Enter sau apasa click aici pentru a o raporta. Multumim!

Etichete: .campionalgoritmicainformaticaOJIONIpalcProbleme algoritmică

— Andrei Avădănei a scris 1246 articole

Andrei scrie pe worldit.info din vara lui 2011. Este fondatorul Asociatiei Centrul de Cercetare in Securitate Informatica din Romania - CCSIR si coordoneaza DefCamp, cea mai importanta conferinta de securitate informatica & hacking din Europa Centrala si de Est. Andrei ofera in cadrul Bit Sentinel servicii de securitate informatica, penetration testing, security management, recuperarea de pe urma unui atac cibernetic, training-uri si workshop-uri.

  • Articolul anterior Problema prod3, Campion 2009
  • Articolul următor 4 Decembrie – ziua Digg.com in San Francisco , lansarea Digg 365 si aniversarea a 5 ani de existenta

1 Comentariu

  1. miculprogramator spune:
    decembrie 5, 2009 la 1:35 pm

    Problemele au fost bune, eu sunt multumita de punctajul meu. Pacat ca unele teste au fost dumb, unele exemple creep … Una peste alta, mi-a placut. 🙂


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    • imacoolat-curat.ro
      | Published: februarie 3, 2020 - 2:00 am
    • hotel-palace.ro
      | Published: februarie 2, 2020 - 2:00 am
    • www.tahometru.ro
      | Published: februarie 1, 2020 - 2:00 am
    • alexisart.ro
      | Published: ianuarie 30, 2020 - 2:00 am
    • justshop.ro
      | Published: ianuarie 29, 2020 - 2:00 am
    RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • ianuarie 2021
    L Ma Mi J V S D
    « dec.    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C/C++
  • Problema palc, Campion 2009
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons

Multumim foarte mult ca ne-ai raportat greseala! O vom remedia in cel mai scurt timp posibil.