Am folosit ideea din articolul cu solutii. Cu toate astea, pe testul 8 4 imi da 194, in loc de 200. Ma chiunui de doua zile sa imi dau seama ce are, si nu reusesc sa gasesc greseala. Pseudocodul ( pt W si H fixate) arata cam asa:
s_partiala = 1; // nr de dreptunghiuri inscrise in dreptunghiul de laturi W si H.
pentru ( A = 2; A < H; ++A ) // A nu poate fi in coltul dreptunghiului
{
- calculez solutiile ecuatiei C^2 - W*C + A * (H - A). (necunoscuta C)
- daca delta < 0 sau delta nu e patrat perfect continue;
- daca C1 (sau C2) este numar intreg si e cuprins in intervalul [ 2 , W-1 ] s_partiala ++;
}
sol_totala += (N - H + 1) * (M - W + 1) * sp;
2<=W<=M si 2<=H<=N. Plec cu ele de la 2, pentru ca laturile din care poate fi format un dreptunghi paralel cu axele trebuie sa contina cel putin 2 puncte.
A imi pleaca de la 2, la H-1, intrucat nu iau in considerare dreptunghiul de laturi (H,W), ( caz luat in considerare atunci cand s_partiala = 1 ). Iar solutia pentru C trebuie sa apartina lui [ 2, W-1 ], intrucat C nu poate fi colt al dreptunghiului (H,W). Prin lungimea unei laturi inteleg numarul de puncte laticiale de pe ea. Sper ca am explicat destul de bine ceea ce fac. Ma poate lumina cineva? Multumesc!
