Sunteți pe pagina 1din 25

1 .

Un site de comerț electronic dorește să găsească clientul norocos care va fi eligibil pentru rambursarea la
valoarea totală. În acest scop, un număr N este alimentat sistemului. Va returna un alt număr care este calculat
de un algoritm. În algoritm, este generată o secvență, în care fiecare număr este suma celor două numere care
urmează. Inițial, secvența va avea două 1-uri în ea. Sistemul va returna al N- lea număr din secvența generată,
care este tratată ca ID-ul comenzii. Clientul norocos va fi cel care a plasat comanda respectivă. Scrieți un
algoritm pentru a ajuta site-ul să găsească clientul norocos.

Intrare
Intrarea constă dintr-un simbol întreg, reprezentând numărul alimentat sistemului (N).
Ieșire
Tipăriți un număr întreg reprezentând ID-ul comenzii clientului norocos.
Exemplu
Intrare:
8
Ieșire:
21
Explicaţie:
Secvența generată de sistem va fi 1,1,2,3,5,8,13,21. Al 8 -lea număr din succesiune este 21. Clientul norocos este
cel care a plasat comanda cu ID comandă 21.

Cazul de testare 1:
Intrare:
8
Valoarea de returnare așteptată:
21
Cazul de testare 2:
Intrare:
7
Valoarea de returnare așteptată:
13

2 . O companie oferă criptare de rețea pentru transferul securizat de date. Șirul de date este criptat înainte de
transmitere și este decriptat la capătul de recepție. Dar din cauza unei erori tehnice, datele criptate se pierd și
șirul primit este diferit de șirul original cu 1 caracter. Arnold, un administrator de rețea, are sarcina de a găsi
personajul care s-a pierdut în rețea, astfel încât bug-ul să nu dăuneze altor date care sunt transferate prin rețea.
Scrieți un algoritm care să-l ajute pe Arnold să găsească personajul care lipsea la capătul de primire, dar
prezent la capătul de trimitere.
Intrare
Intrarea constă din două șiruri separate prin spațiu – stringSent și stringRec , reprezentând șirul care a fost trimis
prin rețea și, respectiv, șirul care a fost primit la capătul de recepție al rețelei.

Ieșire:

Tipăriți un caracter reprezentând caracterul care a fost pierdut în rețea în timpul transmisiei și dacă nu există
pierderi de date în timpul transmisiei, imprimați „NA”.

Exemplu

Intrare:
abcdfjgerjabcdfijger
Ieșire:
J
Explicaţie;

Caracterul „j” de la sfârșitul șirului trimis a fost pierdut în rețea în timpul transmisiei.

Cazul de testare 1:
Intrare:
abcdfjgerjabcdfjger
Valoarea de returnare așteptată:

Cazul de testare 2:
Intrare:
aaaaaabaaaaaaaaaa
Valoarea de returnare așteptată:
B

3 . O companie de comerț electronic plănuiește să ofere clienților săi o reducere pentru vacanța de Anul Nou.
Reducerea va fi calculată pe baza sumei facturii a comenzii plasate. Suma reducerii este suma tuturor cifrelor
impare din suma totală a facturii clientului. Dacă nu există nicio cifră impară în suma facturii, atunci reducerea va
fi zero.

Scrieți un algoritm pentru a găsi reducerea pentru suma totală dată a facturii.

Intrare
Intrarea constă dintr-un număr întreg billAmount, reprezentând suma totală a facturii clientului.

Ieșire
Tipăriți un număr întreg reprezentând reducerea pentru suma totală dată a facturii

Constrângeri
0 <billAmount ≤ 10 9

Exemplu
Intrare:
2514795
Ieșire
27

Explicaţie:
Cifrele impare din numărul dat 2514795 sunt 5, 1, 7, 9, 5. Suma acestor cifre impare este 27.
Deci, ieșirea este 27.

4. O companie a lansat un nou editor de text care permite utilizatorilor să introducă numai litere, numere și
spații albe în limba engleză. Dacă un utilizator încearcă să introducă orice alt tip de caracter, acesta este
considerat greșit.

Având în vedere un șir de text, scrieți un algoritm care să ajute dezvoltatorul să detecteze numărul de erori ale
unui anumit utilizator în intrarea dată.

Intrare
Intrarea constă dintr-un șir textlnput , reprezentând textul care este introdus în editorul de text de către utilizator.
Ieșire
Tipăriți un număr întreg care reprezintă numărul de rateuri ale unui utilizator dat în intrarea dată.
Exemplu
Intrare:
aa a234bc@ sad$ hsagd^
Ieșire:
3
Explicaţie:
Caracterele care sunt socotite ca ratate de editor sunt ['@','$','^']

5. O companie are un record de vânzări de N produse pentru M zile. Compania dorește să cunoască veniturile
maxime primite de la un produs dat din cele N produse în fiecare zi. Scrieți un algoritm pentru a găsi cel mai
mare venit primit în fiecare zi.
Intrare
Prima linie a intrării constă din două numere întregi-zile (M) și produse (N) separate prin spațiu, reprezentând
zilele și produsele din înregistrarea vânzărilor.
Următoarele M linii constau din N numere întregi separate prin spațiu, reprezentând veniturile din vânzări primite
de la fiecare produs în fiecare zi.

Ieșire
Tipăriți M numere întregi separate prin spațiu reprezentând maximul primit în fiecare zi.
Exemplu
Intrare
34
100 198 333 323
122 232 221 111
223 565 245 764

Ieșire:
333 232 764

Explicaţie:
Venitul maxim primit în prima zi este de 333, urmat de un venit maxim de 232 în a doua zi și un venit maxim de
764 în a treia zi.
CAZURI DE TESTARE

TestCase1 :

Intrare:
44
7 21 2 8
8 18 16

16 12 97
12 0 7 2
Valoarea de returnare așteptată:
21 18 16 12

Testa2:

Intrare:
33
98 -321 83
83 54 -75
283 46 68
Valoarea de returnare așteptată:
98 83 283

6. Jucați un joc online. În joc, un număr este afișat pe ecran. Pentru a câștiga jocul, trebuie să numărați
zerourile finale din valoarea factorială a numărului dat. Scrieți un algoritm pentru a număra zerourile finale din
valoarea factorială a numărului dat.
Intrare
Intrarea constă dintr-un număr întreg, reprezentând numărul afișat pe ecran.
Ieșire
Print Un număr întreg care reprezintă numărul de zerouri finale din factorialul numerelor date.
Notă
Factorialul numărului este calculat ca produsul numerelor întregi de la 1 la num.
Exemplu
Intrare
5
Ieșire:
1
Explicaţie:
La calculul factorialului de 5, rezultatul este 120 (1 x2x3x4x5). Există doar un 0 final în 120, deci rezultatul este
1.

7. Într-un laborator de cercetare științifică, combinația a două substanțe nucleare produce o energie inițială A.
Această energie A se schimbă cu o rată constantă R în fiecare secundă. Energia este înmulțită cu o valoare
constantă R în fiecare secundă. Omul de știință dorește să calculeze energia produsă la fiecare secundă dacă
reacția este lăsată să aibă loc timp de N secunde.

Scrieți un algoritm pentru a găsi energia produsă la fiecare secundă dacă reacția este lăsată să aibă loc timp de
N secunde.

Intrare
Intrarea constă din trei numere întregi separate în spațiu – energie inițială, rată și timp. reprezentând energia
inițială produsă la combinarea substanțelor nucleare (A), rata constantă de schimbare (R) și, respectiv,
secundele pentru care se permite să aibă loc reacția (N).

Ieșire
Tipăriți N numere întregi separate prin spațiu reprezentând energia produsă la fiecare secundă dacă reacția este
lăsată să aibă loc timp de N secunde.
Constrângeri
-10 6 ≤ inițialEnergy,rate ≤ 10 6
0 ≤ timp ≤ 100
Exemplu
Intrare
533

Ieșire:
5 15 45
Explicaţie:
Pentru N =1, se generează o energie inițială de 5
Pentru N=2, se înmulțește o rată consistentă de 3, deci devine 15
Pentru N=3, din nou 3 este înmulțit cu valoarea energetică anterioară, deci devine 45.
Deci ieșirea este 5, 15, 45

CAZURI DE TESTARE:
TestCase1:
I/P:
243
O/P:
2 8 32
CAZUL DE TEST 2:
I/P:
265
O/P:
2 12 72 432 2592

8. Andrew este un comerciant de acțiuni care tranzacționează cu N acțiuni selectate. El a calculat variațiile
relative ale prețului acțiunilor în acțiunile N față de prețurile acțiunilor din ziua anterioară. Acum, numărul lui
norocos este K, așa că dorește să investească în acțiunile specifice care au cea mai mică valoare relativă a
acțiunilor K.

Scrieți un algoritm pentru ca Andrew să găsească cel mai mic preț al K-lea dintre acțiunile N selectate.

Intrare
Prima linie a intrării constă din două numere întregi separate prin spațiu – numOfStocks și valuek, reprezentând
numărul de acțiuni selectate (N) și, respectiv, valoarea K pentru care dorește să găsească prețul acțiunilor.
A doua linie este formată din N numere întregi separate prin spațiu – stoc1, stoc2, ……, stoc N reprezentând
prețurile relative ale acțiunilor acțiunilor selectate.

Ieșire
Tipăriți un număr întreg reprezentând cel mai mic preț al K-lea dintre acțiunile N selectate.

Constrângeri
0 < valoareK ≤ numOfStocks ≤ 10 6
0 ≤ stoc i ≤ 10 6

0 ≤ i< numOfStocks

Exemplu
Intrare:
75
9 -3 8 -6 -7 18 10
Ieșire
9
Explicaţie:
Prețurile relative ale acțiunilor sortate sunt [-7, -6, -3, 8, 9, 10, 18]
Deci, al 5- lea cel mai mic preț al acțiunilor este 9.
CAZURI DE TESTARE
Cazuri de testare 1:
Intrare:
74
1234579
Valoarea de returnare așteptată:
4
Cazuri de testare 2:
Intrare:
53
10 5 7 88 19
Valoarea de returnare așteptată:
10

9. O companie de comerț electronic intenționează să acorde clienților săi o reducere specială la toate
produsele sale, pentru sărbătoarea de Crăciun. Compania deține date despre stocul său de N tipuri de
produse. Datele pentru fiecare tip de produs reprezintă numărul de clienți care au comandat produsul
dat. Dacă datele K sunt pozitive, atunci arată că produsul a fost comandat de clienții K și este în stoc.
Dacă datele K sunt negative, atunci arată că a fost comandată de clienții K, dar nu este în stoc. Firma
va onora comanda direct dacă produsul comandat este în stoc. Daca nu este in stoc, atunci compania
va onora comanda dupa ce va reface stocul din depozit. Ei plănuiesc să ofere o sumă de reducere A
pentru fiecare produs. Valoarea reducerii va fi distribuită clienților care au achiziționat acel produs
selectat. Reducerea va fi distribuită numai dacă suma decisă A con va fi împărțită la numărul de
comenzi pentru un anumit produs.

Scrieți un algoritm pentru echipa de vânzări pentru a afla numărul de produse din N pentru care va fi
distribuită reducerea.

Intrare
Prima linie a intrării constă din două numere întregi separate prin spațiu – numOfProducts și
disAmount , reprezentând numărul de tipuri diferite de produse (N) și suma reducerii care va fi
distribuită între clienți.
Comanda N reprezentând starea curentă a stocului pentru comenzile tipurilor de produse respective.

Ieșire
Tipăriți un număr întreg reprezentând numărul de produse din N pentru care se va distribui reducerea.

Constrângeri
O ≤ numOfProducts, disAmount ≤10 5
-10 6 ≤ ordinul i ≤10 6
0≤ i ≤ numOfProducts

Exemplu
Intrare:
7 18
9 – 13 8 – 7 – 8 18 10

Ieșire
2
Explicaţie:
Produsele pentru care numărul de clienți va încasa suma de reducere „3” sunt pentru tipurile de
produse 0 și 5, adică 9 și respectiv 18.
Sao, ieșirea este 2

10 . Jackson, un student la matematică, dezvoltă o aplicație pentru triunghiuri în măsurare. Pentru cele două
triunghiuri de pe afișajul aplicației, cu baza și înălțimea date, utilizatorul trebuie să identifice triunghiul cu cea mai
mare suprafață. Jackson trebuie să scrie acum un algoritm pentru a găsi aria triunghiului mai mare.

Pentru a găsi aria unui triunghi cu baza și înălțimea date, se folosește următoarea formulă:
Aria unui triunghi = (baza*inaltime)/2.
Scrieți un algoritm pentru a găsi aria celui mai mare triunghi.

Intrare
Prima linie a intrării constă din două numere întregi pozitive separate prin spațiu – bază1, înălțime1,
reprezentând baza și înălțimea primului triunghi.
Cea de-a doua linie este formată din două numere întregi pozitive separate prin spațiu - baza2, înălțimea2,
reprezentând baza și înălțimea celui de-al doilea triunghi.
Ieșire
Tipăriți un număr real reprezentând aria celui mai mare triunghi rotunjit la 6 zecimale.
Constrângeri
0 ≤ bază1, înălțime1, bază2, înălțime2 ≤10 9
Exemplu
Intrare:
58
4 11
Ieșire:
22.000000
Explicaţie:
Aria primului triunghi = 20,000000((5*8)/2).
Aria celui de-al doilea triunghi = 22,000000((4*11)/2).
Deci, ieșirea este 22.000000.

Răspuns:

Aria triunghiului #incIude <stdio.h> int main() float h1,b1,h2,b2,a1,a2; scanf("%f%f%f%f",&h1,&b1,&h2,&b2);


a1 = (h1*b1)/2; a2 = (h2*b2)/2; dacă(a1>a2)

printf("%f",a1); else printf("%f",a2);

întoarce 0;
11. O companie dorește să-și codifice datele sunt sub formă de șir și ține seama de majuscule și
minuscule. Ei doresc să codifice datele cu privire la un anumit caracter. Ei doresc să numere de câte ori
caracterul reapare în datele date, astfel încât să poată codifica datele în consecință.

Scrieți un algoritm pentru a găsi numărul caracterului specific din datele date.
Intrare
Prima linie a intrării constă dintr-un șir de date reprezentând datele de codat.
Următoarea linie a intrării constă dintr-un codificator de caractere care reprezintă caracterul care trebuie
numărat în date.
Ieșire
Tipăriți un număr întreg care reprezintă numărul caracterului specific.

Exemplu
Intrare:
au buna ziua a
Ieșire:
3
Explicaţie:
Caracterul „a” apare de trei ori în date. Deci, ieșirea este 3.
CAZUL DE TEST 1:
I/P:
șir de testare
e
O/P:
1
CAZUL DE TEST 2:
I/P:
Buna dimineata
O
O/P:
3

12. O companie dorește să transmită date către un alt server. Datele constau numai din numere. Pentru
a securiza datele în timpul transmisiei, ei plănuiesc să inverseze mai întâi datele. Scrieți un algoritm
pentru a inversa datele.

Intrare
Intrarea constă dintr-un număr întreg, reprezentând datele de transmis.
Ieșire
Tipăriți un număr întreg care reprezintă datele date în formă inversă.
Exemplu
Intrare
5783789
Ieșire:
9873875

Explicaţie:
La inversarea valorii date, ieșirea este 9873875.

13. O companie dorește să ofere servicii de taxi pentru N angajații săi. Angajații au ID-uri de la 0 la N-1.
Compania a calculat distanța totală de la reședința unui angajat până la companie, considerând că calea
pe care trebuie să o urmeze taxiul este o cale dreaptă. Distanța companiei față de ea însăși este 0.
Distanța pentru angajații care locuiesc în partea stângă. a companiei este reprezentată cu semn negativ.
Distanța pentru angajații care locuiesc în partea dreaptă a companiei este reprezentată cu semn pozitiv.
Cabinei i se va aloca o gamă de distanță. angajații care locuiesc în intervalul de distanță specific.

Scrieți un algoritm pentru a găsi ID-urile angajaților care locuiesc în intervalul de distanță.

Intrare
Prima linie a intrării constă din trei numere întregi separate prin spațiu-num, început și reprezentând
dimensiunea listei (N); valoarea de pornire a intervalului și valoarea de sfârșit a intervalului, respectiv.
A doua linie a intrării este formată din N numere întregi separate prin spațiu, reprezentând distanța
angajaților față de companie.

Ieșire
Tipăriți numere întregi separate prin spațiu reprezentând ID-urile angajaților a căror distanță se află în
intervalul dat, altfel return-1.
Exemplu
Intrare
6 30 50
29 38 12 48 39 55

Ieșire
38 48 39
Explicaţie:
Sunt trei angajați cu distanța 38,48 și 39 a căror distanță față de birou se află în intervalul dat.
RĂSPUNS:
#incIude<stdio.h>
int main ()

int n,m,a,i;
scanf ("%d", &a);
scanf ("%d %d", &n,&m);
int arr[a];
pentru (i = 0; i < a;i++) scanf ("%d", &arr[i]);

pentru (i = 0; i < a; i++)

if (arr[i]>n &&arr[i]<m) printf("%d",arr[i));return 0

14. Domnule Woods, un electrician a realizat câteva conexiuni defecte la opt lumini stradale din orașul
Timberland. Conexiunile sunt de așa natură încât, dacă luminile stradale adiacente unui anumit lumini
sunt ambele PORNITE (reprezentate ca 1) sau ambele stinse (reprezentate ca 0) ,apoi lumina stradală se
stinge în noaptea următoare. În caz contrar, rămâne aprins în noaptea următoare. Cele două lumini
stradale de la capătul drumului au doar o singură lumină stradală adiacentă, așa că se poate presupune
că cealaltă lumină adiacentă este întotdeauna stinsă. .Starea luminilor într-o anumită zi este considerată
pentru ziua următoare și nu pentru aceeași zi.

Din cauza acestei greșeli, locuitorii orașului se confruntă cu dificultăți în a conduce noaptea pe șosea.
Așadar, au depus o plângere în acest sens la șeful Administrației Federale a Autostrăzilor. Pe baza
acestei plângeri, șeful a cerut raportul. a stării luminilor stradale după M zile.

Scrieți un algoritm pentru a afișa starea luminilor stradale după M zile date.

Intrare
Prima linie a intrării constă dintr-un număr întreg de zile, reprezentând numărul de zile (M).
Următoarea linie constă din opt numere întregi separate prin spațiu, reprezentând starea curentă a
luminilor stradale, adică opt mai multe 0 sau 1.

Ieșire
Tipăriți opt numere întregi separate prin spațiu reprezentând starea luminilor stradale după M zile.
Constrângeri
1<_ zile <_ 10 6

Exemplu
Intrare
2
11101111

Ieșire:
00000110

Explicaţie:
Lumina stradală din poziția 0 are luminile vecine 0 (ipoteza) și 1. Deci, în ziua următoare, va fi 1.
Lumina stradală din poziția 1 are ambele lumini stradale vecine 1. Deci, în ziua următoare, va fi
0.

Lumina stradală din poziția 2 are una dintre străzile învecinate, luminile este 0, iar cealaltă este
1. Deci, a doua zi, va fi 1.
Lumina stradală din poziția 3 este 0 și ambele lumini stradale învecinate sunt 1, deci, în ziua
următoare, lumina stradală din poziția 3 va fi doar 0.
În mod similar, putem găsi starea luminilor rămase pentru ziua următoare.
Deci, starea luminilor stradale după prima zi este 101010001
După două zile, starea luminilor stradale este 00000110
15. Compania de cloud computing Cloud0 poate satisface diverse cerințe pentru resurse. Sistemul
companiei rulează două servere. În scopuri de echilibrare a încărcăturii, încărcarea resurselor este
transferată pe servicii unul câte unul. Inițial, prima solicitare merge la serverul 1, următoarea cerere
merge la serverul 2 și așa și. Cererile deservite de servere sunt de două tipuri, adică unul pentru
dealocarea memoriei (notat cu un număr negativ).

Scrieți un algoritm pentru a găsi numărul total de unități de memorie alocate/dealocate de


serverul 1 după procesarea tuturor solicitărilor.
Intrare
Prima linie a intrării constă dintr-un număr întreg numOfReq, reprezentând numărul de solicitări
(N).
A doua linie este formată din N numere întregi separate prin spațiu-req 1 ,req 2 ,…,req N
reprezentând cererile de alocare/dealocare a respectivelor unități de memorie.
Ieșire
Returnează un număr întreg reprezentând numărul total de unități de alocare/dealocare de
memorie de către serverul 1 după procesarea tuturor cererilor.

Constrângeri
0<_ numOfReq<_10 5
-10 6 <_req i <_10 6
0<_i<=numOfReq
Exemplu
Intrare
7
2 -3 -8 -6 -7 18 1
Ieșire
4
Explicaţie
Cererile deservite de serverul 1 sunt [2,8,-7,1]
Deci, timpul total de procesare al serverului 2 este 4.

CAZ DE TESTARE-1:

TestCase1:
Intrare
5
14 53 2 23 1
Valoarea de returnare așteptată 17
TestCase2:
Intrare:
6
54 2 32 56 88 12
Valoarea de returnare așteptată: 174

RĂSPUNSURI:
#include<stdio.h>
Int main()
{
Int n,i,sum=0;
Scanf(„%d”,&n);
Int arr[n];
Pentru(i=0;i<n;i++)
{
Scanf(„%d”,&arr[i]);
}
Pentru(i=0;i<n;i++)
{
Dacă(i%2==0)
{
Sum=sum+arr[i];
}
}
Printf(„%d”, suma);
Returnează 0;
}

16. O pizzerie face pizza vegană, precum și pizza pe bază de carne. Clienții plasează N comenzi la
magazin și numărul lor de comandă este tipărit pe factură. Magazinul afiseaza k din
N comenzi de pizza atât vegane, cât și pe bază de carne pe ecranul lor simultan. Pizzaria este foarte
renumită și primește multe comenzi. Deci, pentru a evita confuzia, comenzile de pizza vegană sunt
afișate ca număr de comandă pozitiv, iar comenzile de pizza pe bază de carne sunt afișate ca număr de
comandă negativ. Toate comenzile sunt livrate în ordinea în care sunt afișate pe ecran. De fiecare dată
când o comandă afișată este gata, aceasta este apoi eliminată de pe ecran și următoarea comandă este
adăugată pe afișaj la sfârșit.
Un cuplu a venit să mănânce pizza cu copilul lor Billy. Billy este un copil foarte obraznic și pentru a-l ține
ocupat, părinții lui îi spun să facă o listă cu primul număr de comandă de pizza pe bază de carne prezent
în fiecare set de k comenzi afișate pe ecranul magazinului.

Scrieți un algoritm care să-l ajute pe Billy să facă o listă cu primele numere de comandă de pizza pe bază
de carne afișate pe ecran de fiecare dată când o comandă este livrată unui client.
Intrare
Prima linie a introducerii constă din două numere întregi separate prin spațiu – numOfOrders și
dimensiune, reprezentând numărul total de comenzi plasate (N) și, respectiv, numărul de comenzi afișate
pe ecran (K).
A doua linie constă din N numere întregi separate prin spațiu, reprezentând numerele de comandă pentru
pizza vegană și pizza pe bază de carne ale comenzilor plasate de clienți.
Ieșire
Tipăriți o listă de numere întregi separate prin spațiu reprezentând prima comandă de pizza pe bază de
carne din fiecare k comenzi afișate pe ecran de fiecare dată când o comandă este livrată unui client și
tipăriți 0 dacă ecranul nu afișează nicio comandă de pizza pe bază de carne.
Constrângeri
0<_ numOfOrders<_10 6
0<_size <_ numOfOrders
- 10 9 <_ ordersNum<_10 9 , unde order Num reprezintă numerele de ordine ale comenzilor plasate
Exemplu
Intrare
63
- 11-2 19 37 64-18
Ieșire:
- 11 -2 0-18
Explicaţie:
Pasul 1: La momentul primului afișare, numerele de ordine afișate sunt [-11,-2,19].
Deci, primul număr de comandă de pizza pe bază de carne afișat este -11.
Pasul 2: La momentul următorului afișaj, numerele de comandă afișate sunt[-2,19,37]
Deci, primul număr de comandă de pizza pe bază de carne afișat este -2.
Pasul 3: La momentul următorului afișaj, numerele de comandă afișate sunt [19,37,64].
Deoarece nu este afișată nicio comandă de pizza pe bază de carne, rezultatul este 0.
Pasul 4: În mod similar, la momentul următorului afișaj, numerele de ordine afișate sunt [37,64,-18].
Deci, primul număr de comandă de pizza pe bază de carne afișat este -18.
Deci, rezultatul este [-11, -2, 0,-18].

TEST DE TESTARE:

Testcase1:

Intrare:
63
-11 -2 19 37 64 -18
Valoarea de returnare așteptată:
-42 -42 -56 -56

17. Scrieți un algoritm pentru a găsi numărul de apariții ale acului în carul de fân dat.
Intrare
Prima linie a intrării constă dintr-un ac întreg, reprezentând o cifră. A doua linie constă dintr-un car de fân
întreg, reprezentând numărul pozitiv.
Ieșire
Tipăriți un număr întreg reprezentând numărul de apariții ale acului în carul de fân.
Constrângeri
0<_ac<_9
0<_haystack<_99999999
Exemplu
Intrare:
2
123228
Ieșire:
3
Explicaţie:
Acul 2 apare de 3 ori în hastack.

TEST DE TESTARE:
TestCase1:

Intrare:
0
1025480
Valoarea de returnare așteptată:
2
TestCase2:

Intrare:
5
55555555
Valoarea de returnare așteptată:
8
18. O companie Digicomparts produce 52 de tipuri de produse unice pentru laptop și computere
desktop. Produce 10 tipuri de produse pentru laptop și 42 de tipuri de produse desktop. Fiecare produs
fabricat de companie are un ID de produs unic de la az și AZ. Produsele laptop au ID-uri de produs
(a,i,e,o,u,A,I,E,O,U), în timp ce restul ID-urilor de produs sunt atribuite produselor desktop. Managerul
companiei dorește să găsească datele de vânzări pentru produsele desktop.

Se oferă o listă de ID-uri de produs ale vânzărilor ultimelor N produse. Scrieți un algoritm care să-l ajute
pe manager să găsească ID-urile produselor pentru desktop.
Intrare
Prima linie a intrării constă dintr-un număr întreg numOfproducts, reprezentând numărul de produse care
trebuie luate în considerare în datele de vânzări (N).
A doua linie este formată din N caractere separate prin spațiu-prodID 1 ,prodID 2 ….,prodID N
reprezentând ID-urile de produs ale vânzărilor ultimelor N produse.
Ieșire
Tipăriți un număr întreg care reprezintă numărul de produse desktop dintre datele de vânzări date.
Constrângeri
0<_numOfProducts<_10 6
Exemplu
Intrare
6
A v I kel
Ieșire
3
Explicaţie:
ProductID-urile produselor desktop din datele de vânzări sunt [v,k,I].
Deci, ieșirea este 3.

19. Martin lucrează ca comandant în armată. Agentul secret care lucrează pentru armată i-a împărtășit o
informație secretă. Informația secretă constă dintr-un text și un nume de terorist. Cu informațiile date,
Martin trebuie să găsească numărul de teroriști care vor ataca armata. De asemenea, ți-a dat un indiciu
că numărul de teroriști este de câte ori apare numele teroristului în text.

Scrieți un algoritm care să-l ajute pe Martin să găsească numărul de teroriști care urmează să atace.
Intrare
Prima linie a intrării constă dintr-un șir de text, reprezentând textul trimis în informațiile secrete partajate
de agentul secret.
A doua linie constă dintr-un șir de nume, reprezentând numele teroristului. Ieșire
Tipăriți un număr întreg care reprezintă numărul de teroriști care urmează să atace.
Notă

Potrivirea numelui nu face distincție între majuscule și minuscule.


Suprapunerea poate exista în timpul căutării numelui teroristului în text.

Exemplu
Intrare
Timis se joacă în casa lui Tim cu jucăriile lui Tim
Tim

Ieșire
3

Explicaţie:
Tim apare de 3 ori în textul informațiilor secrete.
Numar teroristi=3

CAZ DE TEST:1:

Testa 1:

Intrare:
6
A v I kel
Valoarea de returnare așteptată:
3

TestCase2:
Intrare:
9
S dhajmekp
Valoarea de returnare așteptată:
7

20. Dat un traseu în linie dreaptă. Autobuzele N circulă între diferite stații de autobuz. Există o stație de
lucru la începutul traseului. Distanța stațiilor de autobuz se calculează de la stația de lucru. Autoritatea de
transport vrea să scadă numărul de autobuze care circulă în oraș, astfel încât, dacă rutele autobuzelor se
suprapun, atunci toate aceste autobuze sunt înlocuite cu un singur autobuz. Autoritatea vrea să afle
numărul de autobuze după înlocuirea autobuzelor pe rutele care se suprapun.

Scrieți un algoritm pentru a afla numărul de autobuze după înlocuirea autobuzelor pe rutele care se
suprapun.

Intrare
Prima linie a intrării constă dintr-un număr întreg de autobuze, reprezentând numărul de autobuze care
circulă pe ruta (N).
Următoarele N linii constau din două numere întregi separate prin spațiu, reprezentând distanța dintre
stațiile de autobuz de pornire și de sfârșit ale N autobuze de la stația de lucru.

Ieșire
Tipăriți un număr întreg reprezentând numărul de autobuze care circulă pe traseu după înlocuirea
autobuzelor pe rute suprapuse.

Constrângeri
0<_busCount<_1000
0<_busStations[i][0]<busStations[i][1]<_10 6 ,busStations sunt stațiile de pornire și de sfârșit ale unui
autobuz.
0<_i<_busCount
Exemplu
Intrare
4
28
6 10
12 14
12 20

Ieșire
2
Explicaţie:

O--2- 4- 6--8 -10--12--14-1 6-1 B- -20


I—II--------------------------------eu
Autobuzele care circulă între stațiile de autobuz [2,8] și [6,10] sunt combinate într-unul singur.
În mod similar, autobuzele care circulă între stațiile de autobuz [12,14] și [12,20] sunt combinate la unul
singur.
Deci, numărul total de autobuze care circulă pe traseu este de 2.

21. Jucați un joc online. În joc, este dată o listă de N numere. Jucătorul trebuie să aranjeze numerele
astfel încât toate numerele impare ale listei să vină după numerele pare. Scrieți un algoritm pentru a
aranja lista dată. Astfel încât toate numerele impare ale listei vin după numerele pare.

Intrare
Prima linie a intrării constă dintr-un număr întreg, reprezentând dimensiunea listei (N).
A doua linie a intrării constă din N numere întregi separate prin spațiu reprezentând valorile listei.

Ieșire
Tipăriți N numere întregi separate prin spațiu astfel încât toate numerele impare ale listei să vină după
numerele pare.

Exemplu
Intrare
8
10 98 12 22 3 33 21 11

Ieșire:
10 98 12 22 3 33 21 11

Explicaţie:
Toate numerele pare sunt plasate înaintea tuturor numerelor impare.

22. O companie Selenia plănuiește o mare vânzare la care le va oferi clienților o reducere promoțională
specială. Fiecare client care cumpără un produs de la companie are un ID de client unic numerotat de la
0 la N-1. Andy, șeful de marketing al companiei, a selectat sumele facturilor pentru N clienți pentru
schema promoțională. Reducerea va fi acordată clienților ale căror sume facturilor sunt pătrate perfecte.
Clienții pot folosi această reducere la o achiziție viitoare.

Scrieți un algoritm care să-l ajute pe Andy să găsească numărul de clienți cărora li se va acorda reduceri.

Intrare
Prima linie a intrării constă dintr-un număr întreg numOfCust, reprezentând numărul de clienți ale căror
facturi sunt selectate pentru reducerea promoțională (N).
Al doilea rând este format din N numere întregi separate prin spațiu-factura 1 , factura 2 ..... ,factura N
reprezentând sumele facturilor ale celor N clienți selectați pentru reducerea promoțională.

Ieșire
Tipăriți un număr întreg reprezentând numărul de clienți cărora li se vor acorda reduceri.
Constrângeri
0<_numOfCust<_10 6
0<_factura i <_10 6
0<_i<numOfCust

Exemplu
Intrare

6
25 77 54 81 48 34

Ieșire:
2

Explicaţie:
Sumele facturilor care sunt pătrate perfecte sunt 25 și 81.
Deci, ieșirea este 2.

23. O firmă de depozitare frigorifică are N unități de depozitare pentru diverse produse.
Compania a primit comenzi de N care trebuie păstrate la temperaturile N respective în interiorul
unităților de depozitare. Managerul companiei dorește să identifice ce produse trebuie păstrate
la temperaturi negative.

Scrieți un algoritm care să-l ajute pe manager să găsească un număr de produse care au
cerințe negative de depozitare la temperatură.

Intrare
Prima linie a intrării constă dintr-un număr întreg numOfProducts , reprezentând numărul de
produse (N).

A doua linie este formată din N numere întregi separate în spațiu – temp1, temp2,… , tempN
reprezentând temperaturile la care produsele trebuie păstrate în unitățile de depozitare.

Ieșire
Tipăriți un număr întreg reprezentând numărul de produse care trebuie păstrate la temperaturi negative.
Constrângeri
O ≤ numOfProducts ≤ 10 6
-10 6 ≤ temp i ≤ 10 6
O ≤ i < numOfProducts ,

Exemplu
Intrare
7 9 -3 8 -6 -7 8 10
Ieșire
3

Explicaţie:
Produsele care trebuie conservate la temperaturi negative sunt la indici [1,3,4] adică. [-3 -6 -7]
Deci, rezultatul este 3
24 . Vi se oferă două liste de lungimi diferite de numere întregi pozitive. Scrieți un algoritm
pentru a număra numărul de elemente care nu sunt comune în lista dată.
Intrare

Prima linie a intrării este formată din două numere întregi separate prin spațiu – lungimea 1 și
lungimea2, un număr întreg reprezentând numărul de elemente din prima listă și, respectiv,
numărul de elemente din a doua listă.
A doua linie constă dintr-un număr întreg reprezentând prima listă de numere întregi pozitive.
A treia linie constă dintr-un număr întreg care reprezintă a doua listă de numere întregi pozitive.
Ieșire
Tipăriți un număr întreg pozitiv reprezentând numărul de elemente care nu sunt comune în ambele liste
date. Exemplu
Intrare:
11 10
1 1 2 3 4 5 5 7 6 9 10
11 12 13 4 5 6 7 18 19 20
Ieșire:
12
Explicaţie:
Numerele care nu sunt comune în ambele liste sunt [1,1 2, 3, 9, 10, 11, 12, 13, 18, 19, 20] Deci, rezultatul
este 12.

25. Vi se oferă o listă de numere întregi și un număr întreg K. Scrieți un algoritm pentru a găsi
numărul de elemente din listă care sunt strict mai mici decât K.
Intrare
Prima linie a intrării constă din două numere întregi separate prin spațiu – dimensiunea și num
K, reprezentând numărul de elemente din listă (N) și numărul întreg de comparat (K). A doua
linie constă din N numere întregi separate prin spațiu - elemente[0], elemente[1], …….
Elemente[N-1] reprezentând lista de numere întregi.

Ieșire
Tipăriți un număr întreg reprezentând numărul de elemente din listă care sunt strict mai mici decât num.

Constrângeri
-10 9 ≤ numK < 10 9
-10 9 ≤ elemente[0], elemente[1], …………elemente[N-1] 10 9
Exemplu
Intrare:
75
1745632
Ieșire:
4
Explicaţie:
Numerele care sunt mai mici de 5 în elemente sunt 1, 2, 3, 4, .
Deci, ieșirea este 4

26. Luați în considerare o funcție specială care este utilizată pentru a genera permutări ale unei liste date
de numere. La fiecare apel, returnează una dintre permutațiile aleatoare ale listei de intrare și nu repetă
niciodată nicio permutare pe care a generat-o deja într-un apel anterior. Odată ce funcția a generat toate
permutările posibile, pur și simplu returnează NULL.

Scrieți un algoritm, pentru a afla numărul maxim de apeluri necesare acestei funcții speciale pentru a
obține o matrice care este sortată în ordine crescătoare.

Intrarea în funcția maxOperations constă dintr-o listă de matrice întregi nevide și lungimea lui len.
Returnează un număr întreg care reprezintă numărul maxim de apeluri la o funcție specială pentru
sortarea matricei în ordine crescătoare.

Comenzi utile:

new este folosit pentru a aloca dinamic memorie în C++. Declaratia-

int arr new - new intp[x];

caz de testare 1:

intrare

[5,1,3,11],4

Cu excepția valorii de returnare

23

Explicaţie

Următoarea permutare poate apărea înainte ca matricea sortată să apară -

11,5,3,1

11,5,1,3

11,3,5,1

11,3,1,5

11,1,5,3

11,1,3,5 și așa mai departe...

Testcase 2:

[5,1,2,3,8,0,12],7

Valoarea de returnare exceptată:

5039

27. Având în vedere o matrice unică de numere întregi pozitive cu elemente cuprinse între 0 și
(lungimea matricei -1), scrieți un program pentru a schimba valoarea elementului și valorile
indexului corespunzătoare.

De exemplu: Dacă a[0]=3, a(11=2,a[21=0 și a(3) =1, atunci tabloul final ar fi: a[01=2, 41)=3, a[2
]=1 și a[3) =0

Intrarea în metoda swapArr a clasei Indexinterchange va consta dintr-o matrice arr. Metoda ar
trebui să returneze o matrice după înlocuirea elementelor cu valorile lor de index. Valorile din arr
trebuie să fie întotdeauna și să acopere toate numerele cuprinse între 0 și (lungimea matricei -1).

Comenzi utile: • metoda lungimii este utilizată pentru a calcula lungimea unui tablou 1-D.
Instrucțiunea int a=arrlength: stochează lungimea matricei de aer în a.

TestCase 1:

Intrare: (4. 3, 0, 5. 1. 2) Valoare de returnare așteptată: [2 4. 5. 1. 0. 3)

TestCase 2:

Intrare: (7. 6. 5. 4. 0. 1. 2. 3) Valoare de returnare așteptată: [4, 5, 6, 7, 3, 2, 1, 0)

28. . transmiterea unui cod complet funcțional peste cod parțial corect, dar eficient. Odată trimisă, nu
puteți revizui această problemă din nou. Puteți utiliza System.out.print/n() pentru a vă depana codul. Este
posibil ca System.out.print/n() să nu funcționeze în cazul unei erori de sintaxă/execuție. Versiunea de
JDK utilizată este 1.8.
Sistemele care pot rula mai multe joburi concurente pe un singur CPU au un proces de alegere a
sarcinilor care să ruleze când și cum să le despartă, numit „programare”. Politica Round-Robin pentru
programare rulează fiecare job pentru o perioadă fixă de timp înainte de a trece la următorul job. Timpul
de așteptare pentru un job este timpul total pe care îl petrece așteptând să fie rulat. Fiecare job ajunge la
un anumit moment pentru programare și durează o anumită perioadă de timp pentru a rula„ Când sosește
un job nou, acesta este programat după joburile existente deja în așteptare pentru timpul CPU. Având o
listă de trimiteri de jab, calculați timpul mediu de așteptare pentru toate joburile utilizând politica Round
Robin.
Intrarea în metoda waitingTimeQobino din clasa QoundQobin constă din două matrice întregi care conțin
timpii de sosire și de rulare a jobului și un număr întreg q reprezentând perioada fixă de timp utilizată de
politica Round-Robin. comanda dupa ora sosirii. Pentru joburile care sosesc în același timp, procesați-le
în ordinea în care sunt găsite în arrive/array. Puteți presupune că lucrările ajung în așa fel încât CPU-ul
nu este niciodată inactiv.

Funcția ar trebui să returneze un număr în virgulă mobilă pentru timpul mediu de așteptare care este
calculat folosind politica Round-Robin.
Să presupunem că O jab ora de sosire 100 și O < timp de rulare a sarcinii < 100.

Intrare:

[0,1,4],[5,2,3],3,3
Valoarea de returnare așteptată:
2.333333
Explicaţie:
Procesele rulează în următoarele intervale de timp - Pl rulează inițial timp de 3 secunde, P2 rulează timp
de 2 secunde, între timp sosește PS. Deoarece Pl a fost primul în coadă, acesta rulează pentru cele 2
secunde rămase în timp ce PS așteaptă Apoi PS rulează în cele din urmă 3 secunde Timpul de așteptare
al proceselor Pl. 92, 93 sunt 2, 2 și, respectiv, 3. Media este astfel 23333333 secunde.
TestCase 2:
Intrare:
[0,1, 3, 9], [2, 1, 7,5], 4, 2
Valoarea Aetum așteptată: 1000000
Explicaţie:
Procesele rulează în următoarele intervale de timp - Pl rulează inițial timp de 2 secunde, P2 rulează timp
de 1 secundă, P3 rulează mult 6 secunde până când P4 intră în sistem la a 3-a secundă - când rulează
timp de 2 secunde, PS rulează apoi timp de 1 secundă urmat de 94 de alergare timp de 3 secunde.
Timpul de așteptare al proceselor 91, 22, PS, P4 sunt O, 1, 2, respectiv 1 Media este astfel de 1 secundă

29. Compania Digital Secure Data Solutions oferă servicii de criptare și partajare a datelor. Procesul lor
folosește un pentru când Pentru a cripta un caracter. caracterul este înlocuit cu următorul k-lea caracter
cu aceeași literă în setul alfabetic englez Setul alfabetic englez este considerat într-un
Scrieți un pentru a găsi caracterul folosit pentru a cripta caracterul dat în mod ciclic pentru ultimul k
caracter.

INTRARE:

Intrarea constă dintr-un spațiu – caracter și număr întreg separat - caracter și cheie, reprezentând
caracterul care urmează să fie transmis, și respectiv tasta (k),

IEȘIRE:

Tipăriți un caracter care reprezintă caracterul criptat

i/p:

D3
O/P:

Explicaţie:

Înlocuiește D cu G

Deci ieșirea este G

30. . Există N persoane care trăiesc în statul tinselwood unde își concatenează numele orașului înainte
de prenumele lor .scrieți un algoritm pentru a găsi numele orașului N persoane date unde numele orașului
este subșirul comun având lungimea maximă

Intrare:
Prima linie a intrării constă dintr-un număr întreg – dimensiune, reprezentând numărul de persoane din
statul (N)

A doua linie este formată din N șiruri de spațiu separate, reprezentând prenumele oamenilor din
Tinselwood.

Ieșire:

Tipăriți un șir în litere mici reprezentând numele orașului N persoane date, unde numele orașului este
subșirul comun având lungimea maximă.

Constrângeri:

0 <_dimensiune<_10^5

0<len 10^6 ,unde len este lungimea șirului

31. Ethan este liderul unei echipe de N membri. Ethan a atribuit un scor de eroare fiecărui membru din
echipa sa pe baza erorilor pe care le-a găsit în sarcina respectivului membru al echipei. Deoarece scorul
de eroare a crescut la o valoare semnificativă mare, el vrea să ofere tuturor membrilor echipei șansa de
a-l reduce și de a-și îmbunătăți reputația în organizație. Pentru a include acest lucru, el introduce o nouă
regulă conform căreia, ori de câte ori un membru al echipei finalizează un proiect cu succes, scorul de
eroare al acelui membru scade cu un număr P, iar scorul de eroare al tuturor celorlalți membri ai echipei
al căror scor este mai mare decât zero scade cu un număr Q. .

Scrieți un algoritm care să-l ajute pe Ethan să găsească numărul minim de proiecte pe care echipa
trebuia să le finalizeze pentru ca scorul de eroare al tuturor membrilor echipei să fie zero.

Intrare
Prima linie a intrării constă din trei numere întregi separate prin spațiu – N, P și Q reprezentând numărul
total de membri ai echipei, numărul cu care scade scorul de eroare al membrului echipei care a finalizat
cu succes un proiect și numărul cu care scorul de eroare al membrului echipei al cărui scor de eroare
este mai mare decât zero scade, respectiv.
Cea de-a doua linie constă din N numere întregi separate prin spațiu, care prezintă scorurile inițiale de
eroare ale membrilor echipei.
Ieșire
Tipăriți un număr întreg care reprezintă numărul minim de proiecte pe care echipa a trebuit să le
finalizeze pentru ca scorul de eroare al tuturor membrilor echipei să fie zero.
Constrângeri
1 ≤ N ≤ 2*10 5
1 ≤ Q ≤ P ≤10 9
0 ≤ Mi ≤ 109 ; M i reprezintă scorul de eroare al celui de-al i-lea membru al echipei
1 ≤I≤N
Notă
Scorul de eroare al oricărui membru al echipei nu poate fi niciodată mai mic de zero.
Exemplu
Intrare:
3 41
6 41
Ieșire
3
Explicaţie:
Odată ce primul membru al echipei finalizează un proiect, scorul de eroare actualizat al membrilor echipei
este: 2 3 0 După ce al doilea membru finalizează proiectul, scorul de eroare actualizat al membrilor
echipei este: 1 0 0 Din nou, după ce primul membru finalizează proiect, scorul de eroare actualizat al
membrilor echipei este: 0 0 0
Deci, echipa trebuie să finalizeze 3 proiecte pentru ca scorul de eroare al tuturor membrilor echipei să fie
zero

CAZURI DE TESTARE
Cazuri de testare 1:
Intrare
4 31
9825
Valoarea de returnare așteptată:
5
Cazuri de testare 2:
Intrare
3 21
4 32
Valoarea de returnare așteptată:
3

32. O companie Dictor lansează o nouă aplicație de dicționar pentru utilizatorii de telefonie mobilă. Inițial,
dicționarul nu va avea niciun cuvânt. În schimb, va fi o aplicație de învățare automată care va învăța în
funcție de textul dat de utilizator. Când un utilizator introduce text, aplicația detectează automat cuvintele
care apar de mai multe ori. Aplicația stochează apoi aceste cuvinte în dicționar și le folosește ca sugestii
în viitoarele sesiuni de tastare.
Scrieți un algoritm pentru a identifica cuvintele care vor fi salvate în dicționar.
Intrare:
Intrarea constă dintr-un șir textinput, reprezentând textul care este dat ca intrare în aplicație de către
utilizator.
Ieșire:
Tipăriți șiruri separate prin spațiu, reprezentând numărul de cuvinte repetate detectate în textul introdus,
iar dacă nu se repetă niciun cuvânt, imprimați „NA”.
Notă:
Un cuvânt este o secvență alfabetică de caractere care nu are spații albe și nu există semne de
punctuație în textul introdus.
Exemplu
Intrare:
Cat batman latt materia pisica materia cat
Ieșire:
Materia pisicilor
Explicaţie:
Cuvântul „pisica” se repetă de trei ori, iar cuvântul „materie” se repetă de două ori în text.
Deci, dicționarul va stoca [„pisică”, „materie”].
CAZURI DE TESTARE
Cazuri de testare 1:
Intrare:
Bloc caramida negru albastru bla negru
Valoarea de returnare așteptată:
negru
Cazuri de testare 2:
Intrare:
Cat batman latt materia pisica materia cat
Valoarea de returnare așteptată:
Materia pisicilor

Vi se dă un număr întreg N, imprimați 2'N linii în felul următor - Dacă N = 4, atunci modelul 33.
ar fi: 1 2'3 4'5'6 7'8'r 10 7'8'9'10 4'5'6 2'3 1

Intrarea în metoda triunghi PatternPrinf din clasa TrianglePattern va consta dintr-un număr întreg N

(presupunem 0 S. N s 100). Nu returnați nimic din metodă. Imprimați modelul necesar folosind

34.

S-ar putea să vă placă și