.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » xor1

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
 .campion
xor1


Timp maxim de execuţie/test:
0.1 secunde
Memorie totală disponibilă/stivă:
2 MB/1 MB

Fie un şir de n numere naturale a1, a2, ..., an. Luând doi indici k şi p, împărţim acest şir în 3 secvenţe, prima fiind a1, a2, ..., ak, a doua ak+1, ak+2, ..., ap, iar a treia ap+1, ap+2, ..., an. Pentru fiecare secvenţă se aplică operatorul xor între oricare doi termeni ai secvenţei, obţinând câte un număr natural:

  • x1 = a1 xor a2 xor a3 ... ak-1 xor ak
  • x2 = ak+1 xor ak+2 xor  ... ap-1 xor ap
  • x3 = ap+1 xor ap+2 xor ... an-1 xor an

Cerinţă

Să se determine o împărţire a şirului în 3 secvenţe astfel încât valoarea x1 + x2 + x3 să fie maximă.

Date de intrare

Fişierul de intrare xor1.in conţine pe prima linie numărul natural n, iar pe a doua linie se află şirul de n numere naturale a1 a2 ... an separate prin câte un spaţiu.

Date de ieşire

Fişierul de ieşire xor1.out va conţine o singură linie pe care va fi scrisă valoarea maximă posibilă care se poate obţine pentru suma x1 + x2 + x3.

Restricţii

  • 2 <= n <= 2 000
  • 0 <= ai <= 2 000 000, pentru orice 1 <= i <= n
  • Fiecare din cele trei secvenţe va conţine cel puţin un element din şir.
  • Operatorul xor (sau exclusiv) este operatorul pe biţi care furnizează rezultatul 1 dacă şi numai dacă unul din cei doi operanzi este 1, iar celălalt 0; tabela operaţiei: 1 xor 1 = 0,  0 xor 0 = 0,  1 xor 0 = 1,  0 xor 1 = 1

Exemplu

xor1.in xor1.out Explicaţie
10
5 7 2 9 16 8 1 3 6 4
41 Valoarea maximă 41 se obţine împărţind şirul în secvenţele:
5 (x1 = 5)
7 2 9 (x2 = 7 xor 2 xor 9 = 12)
16 8 1 3 6 4 (x3 = 16 xor 8 xor 1 xor 3 xor 6 xor 4 = 24)x1 + x2 + x3 = 41
prof. Dan Pracsiu
Grupul Şcolar „Ştefan Procopiu” Vaslui
dpracsiu@yahoo.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Probleme recomandate
De la XOR 2010: ordonare, paltrei, triunghi1, 123, traseu1
De acelaşi autor: cai, rebus, harta, comun, axa, sir, ocean14, reduceri, div3, patrate6, vot, reziduu, accesibil, predecesor, permutari, scanduri, ordonare, paltrei, triunghi1, 123, traseu1, parbit, petrecere, secvbiti, subm, triunghi3, cmmdcsecv, drumuri1, fillmat, secvb, siruri3, acces, segmente, echilibru1, broscute, ksecv, paisprezece, proddiv, perechi2, expeval, maxtri, combcuv, dfs, qtri, blis, maxbin, probleme, divider, eliminare, minm, genab, grafxy, matd3, azeval, matrixdel, speed, maxp, split, binremove, sminus, subsets, tcif, sprime, sir2dif, ecp, arbsum, robotzi, permtr, unudoi, matcnt, ssdj, dominant
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
Despre secvenţe: degrade, hora, simetric, egal, ruleta, ecran, sirag, pasi, firma, br, numere2, termen, div, teatru, repeat, ratb, 2sec, sport, pikachu, suma3, panouri, sir5, mare, hof, resturi, efort, livada1, diff, popic, guess, albine1, permutare, miere, atelier, obstacole, echilibru1, lcdr, 3max, ksecv, maxbin, meteo1, galbeni, maxp, secvp, split, secvente2, ausoara, sminus, munte3, cool, betisoare, unudoi, charlie, lasere, arc, dominant, restaurare, roua
surse trimise | ajutor