ОЕ
Ольга Егорова

Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!

Подсказка: "Где-то видел что решается по формуле Пика! "

АМ
Александр Мизерник

> Вообще-то по формуле Пика высчитывается площадь
Вычислим площадь по другой формуле, посчитаем количество точек на границе, и из формулы Пика выведем количество внутренних точек:

#include

using namespace std;

int gcd(int a, int b) {
while (b) {
int m = a % b;
a = b;
b = m;
}
return a;
}

int main() {
int n;
long long fx, fy, x0, y0, x1, y1, s = 0, np = 0;

cin >> n >> fx >> fy;
x0 = fx;
y0 = fy;
for (int i = 0; i < n - 1; ++i) {
cin >> x1 >> y1;
np += gcd(x0 > x1? x0 - x1 : x1 - x0, y0 > y1? y0 - y1 : y1 - y0);
s += x0 * y1 - x1 * y0;
x0 = x1;
y0 = y1;
}
np += gcd(x0 > fx? x0 - fx : fx - x0, y0 > fy? y0 - fy : fy - y0);
s += x0 * fy - fx * y0;

cout << ((s > 0? s : -s) - np + 2) / 2 << endl;
return 0;
}

Юлия Зверева
Юлия Зверева

Вообще-то по формуле Пика высчитывается площадь, а у Вас другая задача.
Кроме банального определения области проверяемых точек и определения их положения относительно прямых, образованных соединениями вершин многоугольника, ничего не вижу пока!

Похожие вопросы
Подскажите пожалуйста программу для чистки реестра (только хорошую) заранее благодарен! заранее благодарен!
Помогите составить программу на языке СИ
помогите пожалуйста найти программу для создания музыки !! заранее благодарен.
помогите составить программу на языке программирования Pascal или Си++
Помогите пожалуйста написать программы на си++
помогите составить программу на си (не на си++) или турбо паскале, или просто паскале, во всех случаях с комментариями
помогите пожалуйста надо программу составить заранее спс
Помогите составить код программы си ++
Помогите с программой пожалуйста. Нужно очистить память. Заранее благодарю
Помогите составить программу на языке Си.. (подробности внутри)