fork download
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. long long a,b,x,cnt,cur_pos=0;//объявим все необходимые переменные
  5. bool found = false;
  6. cin >> a >> b >> x;
  7. // проверим возможность кузнечика допрыгать до необходимой точки
  8. if(a+b>0&&x<0 || a+b<0&&x>0){
  9. // Если сумма единичных отрезков положительна/отрицательна, а необходимая точка отрицательна/положительна,
  10. // то кузнечик не сможет до неё допрыгать.
  11. cout << -1;
  12. return 0;
  13. }
  14. if(x<0){
  15. x=-x,a=-a,b=-b;
  16. }
  17. if(cur_pos==x){
  18. // проверим, не находится ли кузнечик уже в необходимой точке
  19. cout << cur_pos;
  20. return 0;
  21. }
  22. for(int i = 0; i < x && !found; ++i){
  23. cur_pos+=a;
  24. cnt+=abs(a);
  25. if(cur_pos==x){
  26. found = true;
  27. break;
  28. }
  29. cur_pos+=b;
  30. cnt+=abs(b);
  31. if(cur_pos==x){
  32. found = true;
  33. }
  34. }
  35. if(!found) cout << -1;
  36. else cout << cnt;
  37. return 0;
  38. }
Success #stdin #stdout 0s 15232KB
stdin
5 1 5
stdout
5