М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
okmaksimowac2
okmaksimowac2
05.07.2022 06:51 •  Информатика

Вс++ входные данные в первой строке вводится одно число n (3≤n≤100000). далее в n строках задается по паре чисел – координаты очередной вершины простого многоугольника в порядке обхода по или против часовой стрелки. выходные данные выведите одну строку: “yes”, если многоугольник является выпуклым, и “no” в противном случае. примеры входные данные 3 0 0 0 1 1 0 выходные данные yes входные данные 6 0 0 0 2 1 2 1 1 2 1 2 0 выходные данные no

👇
Ответ:
Geirat
Geirat
05.07.2022
Уравнение прямой

Общее уравнение прямой: Ax + By + C = 0

Мы знаем координаты двух точек, лежащих на прямой. Обозначим их как (x_1; y_1) и (x_2;y_2). Тогда:

A=y_2-y_1\\B=x_1-x_2\\C=y_1x_2-x_1y_2


Решение

Мы знаем координаты точек многоугольника.

Для каждого ребра (пары соседних точек) мы должны проверить, чтобы все остальные точки находились по одну сторону от прямой, которой принадлежит эта пара точек.

Т.е., мы перебираем каждое ребро и смотрим, чтобы остальные точки были одного знака.

Оказывается, смотреть все точки необязательно! Нам нужно проверить каждое ребро, чтобы сказать ответ. Поэтому, нам достаточно смотреть лишь положение двух соседних с этим ребром точек относительно ребра.

Итого, мы должны для каждого ребра убедиться, что две соседних с этим ребром точки лежат по одну сторону от ребра. Вот и всё.


Код

#include <bits/stdc++.h>


using namespace std;


 

int main() {


 int n;


 cin >> n;


 long double x[n+2];


 long double y[n+2];


 for (int i = 0; i < n; i++) {


   cin >> x[i] >> y[i];


 }


 x[n] = x[0];


 y[n] = y[0];


 x[n+1] = x[1];


 y[n+1] = y[1];


 for (int i = 1; i < n; i++) {


   long double a = y[i+1] - y[i];


   long double b = x[i] - x[i+1];


   long double c = y[i] * x[i+1] - x[i]*y[i+1];


   if ((a*x[i-1]+b*y[i-1]+c)*(a*x[i+2]+b*y[i+2]+c) < 0) {


     cout << "NO" << endl;


     return 0;


   }


 }


 cout << "YES" << endl;


 return 0;


}

4,5(60 оценок)
Открыть все ответы
Ответ:
KatyaBelchik12
KatyaBelchik12
05.07.2022

ответ: См. снимок экрана (код в объяснении)

Объяснение:

from getpass import getpass

from random import randint

def task1():

   while True:

       log = input('Login: ')

       if len(log) >= 5 and len(log) <= 10:

           break

   while True:

       pswrd = getpass('Password: ')

       if len(pswrd) >= 8:

           print('Logged in succesfully!')

           break

def task2():

   for i in range(5):

       a = int(input("Enter the start: "))

       b = int(input("Enter the end: "))

       print(randint(a, b))

def task4():

   s = input("Enter the string: ")

   if len(s) < 8:

       quit()

   print('1.', s[-3:-1])

   print('2.', s[4])

   print('3.', s[:8])

   print('4.', s[:-3])

def task5():

   names = ['Liam', 'Noah', 'Oliver', 'William', 'Elijah',

            'James', 'Benjamin', 'Lucas', 'Mason', 'Ethan']

   numbers = []

   for i in range(15):

       numbers.append(randint(1, 100))

   for j in range(0, 10, 2):

       print(names[j])

   for k in range(15):

       if numbers[k] > 10:

           print(numbers[k])


, у меня экзамен. Язык программирования - Python. 1 Уровень Задача 1 – Пользователь должен ввести л
4,5(11 оценок)
Ответ:
Helluing
Helluing
05.07.2022

Объяснение:1.Центра́льный проце́ссор- электронный блок, либо интегральная схема исполняющая машинные инструкции , главная часть аппаратного обеспечения компьютера. Если просто говоря главная штука в кампе.

2.К работе в компьютерном классе допускаются лица данную инструкцию по технике безопасности и правилам поведения, медицинский осмотр и не имеющие противопоказаний по состоянию здоровья;

Работа учащихся в компьютерном классе разрешается только в присутствии преподавателя;

Во время занятий посторонние лица могут находиться в классе только с разрешения преподавателя;

Во время перемен между уроками проводится обязательное проветривание компьютерного кабинета с обязательным выходом учащихся из класса;

3.Джон Мокли, американский физик и инженер.

4.Можно попасть в больницу с ожогами либо умереть.

5.Процессор может сильно нагружаться из за вирусов и програм которые по характеристикам не подходят на ваш компьютер, а вы всёравно пытаетесь запустить мощную програму на слабом компьютере.

4,7(24 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ