Lista de probleme 684

Filtrare

Dificultate

Operații intrare/ieșire


Etichete

#3198 Optimize C++

Se dă codul sursă al unui program. Se cere optimizarea unei funcții din acesta.

AcadNet 2017

Se dă un șir de caractere care conține litere mici și mari ale alfabetului englez, spații și semne de punctuație. Să se afișeze fiecare cuvânt și frecvența de apariție a lui în șirul de caractere pe câte o linie fiecare pereche cuvânt-frecvență ordonate lexicografic.

#2847 List

Se dă o listă simplu înlănțuită care conține n perechi de numere naturale (a,b). Fiecare pereche este stocată în câte un nod al listei; notăm cu a primul număr stocat într-un nod și cu b al doilea număr stocat în acel nod.

Se cere să se insereze în listă astfel:

Dacă pentru nodul curent:

  1. a este par și b este impar se inserează după nodul curent un nou nod, care conține dublul sumei lor pe prima poziție a nodului inserat iar pe a doua poziție diferența dintre dublul sumei numerelor din nodul curent și al doilea număr din nodul curent;
  2. a este impar, b este par se inserează înaintea nodului curent un nou nod, care conține dublul sumei lor pe a doua poziție a nodului inserat și pe prima poziție diferența dintre dublul sumei numerelor din nodul curent și a primului număr din nodul curent;
  3. a este par, b este par se inserează după nodul curent un nou nod, care conține jumătatea sumei lor pe prima poziție a nodului inserat iar pe a doua poziție suma dintre jumătatea sumei numerelor din nodul curent și al doilea număr din nodul curent;
  4. a este impar, b este impar se inserează înaintea nodului curent un nou nod, care conține jumătatea sumei lor pe a doua poziție a nodului inserat și pe prima poziție suma dintre jumătatea sumei numerelor din nodul curent și a primului număr din nodul curent.

#3208 bitcmp C++

Să se scrie o funcție C++ care primește ca parametri două numere naturale, a și b care returnează 1, dacă a < b, 0, dacă a = b și -1 dacă a < b.

Se dă șirul a1, a2, …, an care este o permutare a mulțimii {1, 2, ..., n}. O inversiune în permutare este o pereche (i, j) cu proprietatea că i < j și a[i] > a[j]. Să se determine numărul inversiunilor permutării.

Scrieți o funcție operand cu doi parametri care returnează poziția maximului dintr-un șir dat de numere întregi. Se presupune că elementele șirului sunt distincte și memorate începând cu poziția 1. Parametrii funcției sunt: tabloul în care este memorat șirul și numărul de elemente ale acestuia.

Scrieți o funcție procedurală cu trei parametri care oferă poziția minimului dintr-un șir dat de numere întregi. Se presupune că elementele șirului sunt distincte și memorate începând cu poziția 1. Parametrii funcției sunt: tabloul în care este memorat șirul, numărul de elemente ale acestuia precum și rezultatul.

Scrieți o funcție procedurală care interschimbă două valori întregi.

Scrieți o funcție procedurală care are trei parametri, în ordine: v (tablou unidimensional cu elemente int), pozInit (de tip int), pozFin (de tip int), și care afișează în ordine descrescătoare a indicilor (separate prin spații) elementele secvenței delimitate de pozInit și pozFin, inclusiv. Se garantează că primul parametrul pozInit se transmite funcției mai mic strict decât pozFin. Se garantează că tabloul are cel puțin pozFin elemente și că ambii indici se transmit funcției mai mari sau egali cu 1.

Scrieți un program care, apelând util TOATE funcțiile de mai sus, preia dintr-un fișier dimensiunea (notată de noi mai departe n) și elementele unui vector și le stochează în acesta începând cu poziția 1. Programul va scrie într-un fișier, în ordine descrescătoate a indicilor, elementele cuprinse între valoarea minimă și valoarea maximă. Se garantează că elementele șirului se dau distincte.

Se dă o mulţime nevidă A cu n elemente numere reale. Să se afișeze elementele mulțimilor A ∩ N, A ∩ Z, A ∩ Q și A ∩ (R-Q).

În arta tipografică un râu este o înșiruire de spații care se întinde pe verticală, pe liniile consecutive ale unui text. Mai precis, un râu este definit ca o secvență de cel puțin 2 spații în care oricare 2 spații de pe linii consecutive sunt adiacente pe verticală sau diagonală.

Să se scrie un program care citește numerele naturale L N și apoi un text formatat pe N linii de cel mult L caractere (vezi #LungimeRandMax), și afișează lungimea celui mai lung râu din text, dacă acesta există sau mesajul NU, dacă nu există niciun râu.

Se citesc 2 texte a și b cu lungimea maximă de 255 de caractere pe linii diferite. Să se afișeze textul după aplicarea Cifrului Vigenere la textul a cu cheia b.

#3187 RATC2

Se dau două numere n p și o listă de n elemente cu urcările în autobuz a mai multor persoane a căror structura este prenume nume bilet_platit, fiecare intrare fiind plasată pe câte o linie. Câmpurile prenume și nume sunt șiruri de caractere, iar bilet_platit este un număr care poate fi 0 sau 1; 0 dacă persoana respectivă nu a plătit biletul sau 1 dacă a plătit biletul. Pentru fiecare bilet neplătit se va contoriza o penalizare persoanei.

Se cere :

a) Prenumele, numele și numărul de penalizări al persoanei care are număr maxim de penalizări. Dacă există mai multe persoane cu număr maxim de penalizări se cere afișarea persoanei care apare prima în ordine alfabetică.
b) Ordonarea listei de persoane descrescător după numărul de penalizări, la număr de penalizări egale, crescător după prenume, la prenume identice, crescător după nume.