Mai intai trebuie sa te autentifici.
Diferente pentru monthly-2014/runda-9/solutii intre reviziile #13 si #14
Nu exista diferente intre titluri.
Diferente intre continut:
Acum singura problema care ne mai ramane este unirea a doua noduri a si b intr-un singur nod c (altfel spus, unirea a doua jumatati de interval intr-un singur interval, mentinand toate informatiile de mai sus). Informatiile legate de capetele noului interval sunt usor de calculat dupa urmatoarele formule intuitive: == code(cpp) |
a.st =b.st;a.dr =c.dr;
c.st = a.st; c.dr = b.dr;
== Calcularea sumei noului interval se obtine prin adunarea sumelor intervalelor a si b. == code(cpp) |
a.s1 =b.s1 +c.s1;
c.s1 = a.s1 + b.s1;
== Calcularea noului s2 este putin mai complexa: == code(cpp) |
a.s2 =b.s2 + (c.s2 +c.s1 * (b.dr -b.st + 1));
c.s2 = a.s2 + (b.s2 + b.s1 * (a.dr - a.st + 1));
== Problema a fost aleasa drept cea mai grea problema a setului pentru ca rezolvarea presupunea cunoasterea si aplicarea teoriei, dar si o atentie sporita intr-o implementare laborioasa.