Afişează mesaje
|
Pagini: [1] 2 3
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Infoarena Monthly 2014 / Răspuns: Infoarena Monthly 2014, Runda 7
|
: August 01, 2014, 13:44:20
|
Eu am pornit de la urmatoarele ecuatii: X * H + Z * D = A Y * V + Z * D = B
Dupa ce am facut o scadere am ajuns la: X * H + (-Y) * V = A - B
Am facut Euclid extins pe chestia asta. Fie H0 si V0 solutiile gasite.
H = H0 + K * (-Y) / d V = V0 - K * X / d Unde d = cmmdc(X, -Y)
Acum daca inlocuim intr-una din ecuatii o sa ne dea asa: X * H0 + K * (X * (-Y) / d) + Z * D = A X * H0 e constant si il putem trece in partea dreapta. Notam T = X * (-Y) / d si ajungem la ecuatia T * K + Z * D = A - X * H0
Aplicam din nou Euclid extins pe ecuatia asta si daca si asta are solutie afisam "DA", altfel "NU".
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Probleme externe / Răspuns: Problema c++
|
: Iunie 28, 2014, 10:44:15
|
i / 10 si i / 100 nu iti returneaza primele 2 cifre, ci primele 4, respectiv primele 3(ca un numar unitar).
Prima conditie din if ar trebui schimbata.
i / 100.000 iti da prima cifra (i / 10.000) % 10 ti-o da pe a doua.
Dar vezi ca se poate mai eficient decat faci tu acolo. Incearca sa variezi prima cifra, iar a doua va fi unic determinata. Apoi incearca sa variezi penultima si ultima va fi unic determinata.
|
|
|
|