Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**Indicatii autor
- 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).*/
- #include <iostream>
- #define ULL unsigned long long
- using namespace std;
- ULL c, p, sg, k, m;
- int main()
- {
- cin>>c>>p;
- if(p%2==0) /// calculez suma gauss
- sg=(p/2)*(p-1);
- else
- sg=((p-1)/2)*p;
- if(c<sg)
- {
- cout<<0;
- return 0;
- }
- k=(c - sg)/p; /// valoarea lui k
- m=k*p+sg; /// calculez caramele primite de prichinei
- if(c>=m)
- cout<<(c-m);
- else
- cout<<0;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement