#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int a, b, c; cin>>a>>b>>c; if ((a + b < c) || (a + c < b) || (b + c < a)) { cout<<"Не треугольник"; return 0; } if ((a * a + b * b == c * c) || (a * a + c * c == b * b)|| (c * c + b * b == a * a)) { cout<<"Прямоугольный"; return 0; } if ((a * a + b * b > c * c) || (a * a + c * c > b * b)|| (c * c + b * b > a * a)) cout<<"Остроугольный"; else cout<<"Тупоугольный"; }
Пусть первое утверждение первого учителя истинно. Следовательно, можно составить таблицу, где в первой колонке номер учителя, во второй правда/ложь по высказываниям (например, ПЛ означает, что первое высказывание верное, второе ложное, ЛП - наоборот), а во третьем верное высказывание: 1 :: ПЛ :: первое место у Васи 2 :: ПЛ :: второе место у Саши 3 :: ЛП :: четвёртое место у Гриши 4 :: ЛЛ :: противоречие!
Значит, у первого учителя первое высказывание ложное. Составляем таблицу: 1 :: ЛП :: второе место у Юры 2 :: ЛП :: пятое место у Васи 3 :: ЛП :: четвёртое место у Гриши 4 :: ЛЛ :: противоречие!
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int a, b, c;
cin>>a>>b>>c;
if ((a + b < c) || (a + c < b) || (b + c < a))
{
cout<<"Не треугольник";
return 0;
}
if ((a * a + b * b == c * c) || (a * a + c * c == b * b)|| (c * c + b * b == a * a))
{
cout<<"Прямоугольный";
return 0;
}
if ((a * a + b * b > c * c) || (a * a + c * c > b * b)|| (c * c + b * b > a * a)) cout<<"Остроугольный";
else
cout<<"Тупоугольный"; }
1 :: ПЛ :: первое место у Васи
2 :: ПЛ :: второе место у Саши
3 :: ЛП :: четвёртое место у Гриши
4 :: ЛЛ :: противоречие!
Значит, у первого учителя первое высказывание ложное. Составляем таблицу:
1 :: ЛП :: второе место у Юры
2 :: ЛП :: пятое место у Васи
3 :: ЛП :: четвёртое место у Гриши
4 :: ЛЛ :: противоречие!
Мда, у задачи нет решения...