В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Market080808
Market080808
23.04.2021 21:35 •  Информатика

Взамечательной стране , как нетрудно догадаться из ее названия, все дома имеют
треугольную форму. они расположены на координатной плоскости, и их вершины имеют целочисленные координаты.
недавно в объявили о строительстве нового жилого района, и герой нашей ,
которого зовут ректангул, решил приобрести себе дом в этом районе.
ректангул выяснил, что всем покупателям перед покупкой дается набор точек, среди которых
можно выбрать любые три, не лежащие на одной прямой. именно они на карте будут являться
вершинами треугольника, изображающего их будущий дом.
ректангул хочет как-то выделиться из толпы, и поэтому он решил приобрести не простой дом, а
прямоугольный. получив набор точек, наш герой задался вопросом: сколько у него есть вариантов
выбрать три точки так, чтобы они образовывали прямоугольный треугольник?
формат входных данных
первая строка входного файла содержит одно целое число n — количество точек в наборе
(3 6 n 6 2500).
далее в n строках записаны по два целых числа: xi
, yi — x и y координаты i-й точки из набора
(−1000 6 xi
, yi 6 1000). все точки в наборе различны.
формат выходных данных
в выходной файл необходимо вывести одно число — количество троек точек, которые подходят
нашему герою.

Показать ответ
Ответ:
53490
53490
30.12.2020 17:24

С++20

#include <iostream>#include <vector>class Point {public:    int x, y;    Point() = default;    Point(const Point &) = default;    Point(int _x, int _y) : x(_x), y(_y) {}    Point operator + (const Point& p) const {        return Point {x + p.x, y + p.y};    }    Point operator - (const Point& p) const {        return Point {x - p.x, y - p.y};    }    std::vector<Point> operator & (const Point& p) const {        return std::vector<Point> {                Point {x + p.x, y + p.y},                Point {x - p.x, y + p.y},                Point {x + p.x, y - p.y},                Point {x - p.x, y - p.y},                Point {x + p.y, y + p.x},                Point {x - p.y, y + p.x},                Point {x + p.y, y - p.x},                Point {x - p.y, y - p.x},        };    }    static Point max (const Point& p1, const Point& p2) {        return Point {std::max(p1.x, p2.x), std::max(p1.y, p2.y)};    }    static Point min (const Point& p1, const Point& p2) {        return Point {std::min(p1.x, p2.x), std::min(p1.y, p2.y)};    }    [[nodiscard]] int distance_to_by_ch (const Point & p) const {        return std::max(std::abs(p.x - x), std::abs(p.y - y));    }    [[nodiscard]] int distance_to_by_m (const Point & p) const {        return std::abs(p.x - x) + std::abs(p.y - y);    }    friend std::ostream &operator << (std::ostream &os, Point const &p) {        return os << "(" << p.x << ";" << p.y << ")";    }    Point & operator = (const Point &) = default;    bool operator == (const Point & p) const {        return x == p.x && y == p.y;    }};class Horse {public:    const Point p;    explicit Horse (const Point position) : p(position) { }    [[nodiscard]] bool can_I_kill_this_guy (const Point & m) const {        auto field = p & Point{2, 3};        return std::find(field.begin(), field.end(), m) != field.end();    }};std::istream &to_number(std::istream &stream) {    char ch;    do {        ch = stream.get();    }    while (!isalpha(ch));    if (isupper(ch)) ch -= 16; else ch -= 48;    stream.putback(ch);    return stream;}int main () {    Point horse_p{}, stranger_p{};    std::cin >> horse_p.x >> to_number >> horse_p.y;    std::cin >> stranger_p.x >> to_number >> stranger_p.y;    Horse jack(horse_p);    std::cout << "I am a Horse placed on " << jack.p << ". "              << "Can I kill those guy on " << stranger_p << "? "              << "-> " << std::boolalpha << jack.can_I_kill_this_guy(stranger_p); }
Поле шахматной доски определяется парой – буква и цифра. Буква (a … h) означает горизонталь при счет
Поле шахматной доски определяется парой – буква и цифра. Буква (a … h) означает горизонталь при счет
Поле шахматной доски определяется парой – буква и цифра. Буква (a … h) означает горизонталь при счет
0,0(0 оценок)
Ответ:
uzil1565
uzil1565
19.03.2022 18:11

3. CREATE TABLE

нужны имя полей и тип их данных, например уникальный ID это id = PRIMARY KEY

текст = text , не пустой текст = TEXT NOT NULL ,

числа = REAL,INT время = DATE и т.д

6. SELECT, FROM, GROUP BY, WHERE, ORDER BY, HAVING

7. SELECT - указывает , что извлекать из таблицы, так же может содержать агрегирующие функции и функции времени такие как EXTRACT, DATE_TRUNC

8. FROM - указывает из какой таблицы извлекать, так же можно указать подзапрос

9. WHERE - указывает какие условия нужны для извлечения , которые указаны в SELECT, не может сравнивать агрегирующие функции , для этого есть HAVING, также может содержать подзапрос

10. GROUP BY - групирует по .., HAVING - то же самое , что WHERE , только для агрегирующих функций

11. ORDER BY - использует методы ASC(по возрастанию значений) пример - имя_поле ASC, или DESC(по убыванию значений) - имя_поля DESC

Объяснение:

Будут вопросы напиши в коменты(

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота