Районная олимпиада по информатике. 2018-2019 учебный год. 8-11 классы


Задача E. 80236 Докажи, что математик

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

После неудачного выступления на ACM ICPC 2018-2019, NEERC - Northern Eurasia Finals, команда Хранители335 решила подтянуть свои знания математики, ибо на этом контесте они не решили элементарную задачу по теории чисел. Сегодня один из членов команды придумал задачу, где надо просто определить является ли площадь треугольника целочисленной. Ваша задача состоит в том, чтобы помочь этим ребятам.
Формат входного файла
В первой строке записаны три целых числа $a$, $b$ и $c$ ($ 1 \le a, b, c \le 5000 $) - длины сторон загаданного треугольника.
Формат выходного файла
Выведите единственное число — площадь треугольника если она является целочисленной. В остальных случаях выведите -1.
Примеры:
Вход
3 4 5
Ответ
6
Вход
5 8 5
Ответ
12
Вход
3 3 3
Ответ
-1
( Adlet Balzhanov )
посмотреть в олимпиаде

Комментарий/решение:

  0
2018-12-26 09:06:33.0 #

What's wrong here?

#include<iostream>

#include<cmath>

using namespace std;

int main(){

int a, b, c;

cin>>a>>b>>c;

double s, p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

int z=s;

if(s-z==0){

cout<<s;

}else{показать/скрыть код

cout<<-1;

}

return 0;

}

  0
2018-12-26 15:46:57.0 #

#include<iostream>

#include<cmath>

using namespace std;

int main(){

double a,b,c;

cin>>a>>b>>c;

double s,p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

int z=s;

double x=z;

if(s==x){

cout<<s;

}

else{

cout<<-1;

}

return 0;

}

  0
2019-01-08 21:51:33.0 #

Почти правильное решение

показать/скрыть код

  0
2019-01-08 22:26:02.0 #

показать/скрыть код