Lista de probleme 170

Filtrare

Scrieți o funcție care returnează numărul de secvențe care au între L și U litere distincte. Într-o secvență fiecare literă se va număra o singură dată.

Folclorul informatic

#3802 MinLexSwap C++

Scrieți o funcție care primește ca parametru un șir de litere mici s și va returna șirul minim lexicografic obținut prin interschimbarea a exact două litere diferite din s.

Folclorul informatic

#3941 CountSumS C++

Scrieți funcția care are antetul:

long long CountSumS(vector<int> &a, int s)

Funcția va returna numărul de perechi (a[i], a[j]) cu i < j și a[i] + a[j] = s.

Folclorul informatic

#1508 Element_SA C++

Să se scrie o funcție C++ care are ca parametri două numere naturale n și m și o matrice A(n , m) avȃnd elemente numere întregi și returnează numărul de elemente „șa” din matrice. Un element A(i,j) din matrice se numește element „șa” dacă este maximul de pe coloana j si minimul de pe linia i sau invers.

#2666 Trim C++

Scrieți funcția Trim care primește ca parametru un șir de caractere s, elimină eventualele spații de la începutul și sfârșitul șirului și returnează tot prin intermediul lui s șirul de caractere rezultat.

#4205 SecvSumS C++

Scrieți funcția care are antetul:

int SecvSumS(vector<int> &a, int s)

Funcția va returna lungimea minimă a unei secvențe nevide din a care are suma egală cu s. Dacă nu există nicio secvență de sumă s funcția va returna valoarea -1.

#3621 FMBSorted C++

Scrieți definiția completă subprogramului C++ FMBSorted care are doi parametri:

  • a – o matrice pătratică având cel mult 2000 de linii și 2000 de coloane
  • n – numărul de linii și coloane ale matricei

Matricea a memorează numai valori 0 și 1 și are proprietatea că elementele de pe fiecare linie sunt sortate, adică valorile de 0 apar la începutul fiecărei liniei, iar valorile 0 la finalul fiecărei linii. Este posibil ca o linie să conțină doar valoari de 0 sau să conțină doar valori de 1.

Subprogramul FMBSorted va returna numărul maxim de valori de 1 care se găsesc pe o linie.

#4218 MatrixHasYou C++

Scrieţi definiția completă a subprogramului C++ cu antetul:

void Matrix(int a[300][300], int n, int L[], int C[], int k)

Inițial matricea a memorează numai valori de 0. Se efectuează asupra matricei pe rând, în această ordine, operațiile L[0], C[0], L[1], C[1], L[2], C[2], …, L[k-1], C[k-1]. Operația L[i] se efectuează asupra elementelor liniei L[i] din matrice și modifică orice valoare 0 în 1 și orice valoare 1 în 0. Similar, operația C[i] se efectuează asupra elementelor coloanei C[i] din matrice și modifică orice valoare 0 în 1 și orice valoare 1 în 0. Matricea a va reține în final valorile care se obțin după efectuarea tuturor operațiilor.

#2997 prescurtat C++

Scrieți funcția cu următorul antet:

void Prescurtat(char s[])

Funcția primește ca parametru un text de cel mult 50 de caractere, alcătuit din cuvinte separate prin câte un spațiu și formate din litere mari ale alfabetului englez, urmate eventual de caracterul . (punct), dacă sunt scrise prescurtat. Textul reprezintă numele unei instituții de învățământ și doar cuvintele din mulțimea {COLEGIUL, LICEUL, NATIONAL, TEORETIC} pot fi prescurtate, eliminându-se ultimele lor litere. Funcția va returna tot prin intermediul parametrului s numele instituției scris fără prescurtări.

#4239 MatDiag C++

Scrieţi definiția completă a subprogramului C++ cu antetul:

int MatDiag(int a[100][100], int n)

Subprogramul returnează 1 dacă orice diagonală paralelă cu diagonala principală conține elemente identice, sau returnează 0 dacă există cel puțin o diagonală în care nu sunt toate elementele identice.