fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int s, k, a, b;// заданные величины в соответствующем условию порядке
  6. int n = 0;// текущее количество ног дракона
  7. int d;// текущее количество драконов
  8. cin >> s >> k >> a >> b;
  9. if (a * s == b){
  10. cout << s * k;
  11. return 0;
  12. }// отдельный случай, при a * s = b
  13. while (n < s * k) {
  14. if ((b - s * a) % (n - s * k) == 0) {
  15. d = (b - s * a) / (n - s * k);
  16. if (b - s >= d * n && a > d * k) {
  17. cout << n;
  18. return 0;
  19. }// проверяем удовлетворяет ли текущее количество драконов и текущее количество ног все условия
  20. }// выполняем все проверки только для целых d
  21. n++;
  22. }// выполняем перебор только до s*k
  23. cout << -1;// выводим -1, если решений не нашлось(входные данные противоречивы)
  24. return 0;
  25. }
Success #stdin #stdout 0s 3460KB
stdin
1 0 1 1
stdout
Standard output is empty