Advertisement
Guest User

Caramele_94pct

a guest
Jan 19th, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. /**Indicatii autor
  2. Numărul caramelelor primite de prichindei este k+(k+1)+(k+2)+...+(k+p-1)=k•p+(p-1)•p/2. Determinăm k din condiția k•p+(p-1)•p/2 ≤ c. Numărul caramelelor rămase va fi c-(k•p+(p-1)•p/2).*/
  3. #include <iostream>
  4. #define ULL unsigned long long
  5. using namespace std;
  6. ULL c, p, sg, k, m;
  7. int main()
  8. {
  9.     cin>>c>>p;
  10.     if(p%2==0)  /// calculez suma gauss
  11.        sg=(p/2)*(p-1);
  12.     else
  13.         sg=((p-1)/2)*p;
  14.     if(c<sg)
  15.     {
  16.         cout<<0;
  17.         return 0;
  18.     }
  19.     k=(c - sg)/p;  /// valoarea lui k
  20.     m=k*p+sg;   /// calculez caramele primite de prichinei
  21.     if(c>=m)
  22.         cout<<(c-m);
  23.     else
  24.         cout<<0;
  25.     return 0;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement