Ты перепутал местами Up и Out. И, одновременно, ошибся в условиях, что привело к правильному ответу на первый тест.
if (y - r > a) { // Именно строго больше
cout << "Up";
} else if (y + r < 0) { // Именно строго меньше
cout << "Down";
} else if (y + r <= a && y - r >= 0) {
cout << "Inside";
} else {
cout << "Out";
}
И замени double на int: в задании прямо сказано, что числа целые. А double создаёт ненужные погрешности.
Winner Bro давлетшинУченик (96)
1 месяц назад
#include <iostream>
using namespace std;
int main()
{
double x, y, r, a;
cin >> x >> y >> r >> a;
if (y - r > a) {
cout << "Up";
} else if (y + r < 0) {
cout << "Down";
} else if (y + r <= a && y - r >= 0) {
cout << "Inside";
} else {
cout << "Out";
}
}
для тех кому нужен полный ответ