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

99 (писать на питоне или с ++) петя и вася недавно нашли интересную игру. у них есть большой квадрат с ребром n. вася и петя по очереди загадывают другие квадраты, лежащие внутри большого, после чего вырезают их (при этом часть загаданного квадрата уже может быть вырезана ранее либо выходить за пределы большого квадрата). после некоторого количества ходов они должны безошибочно назвать площадь оставшейся фигуры. зная размер большого квадрата и размеры малых, вырезаемых квадратов, вычислите площадь фигуры, полученной после того, как все малые квадраты будут вырезаны из большого. входные данные в первой строке целое число n — размер ребра квадрата (1< =n< =100). во второй строке целое число m — количество вырезаемых квадратов. в следующих m строках (1< =m< =13) содержатся тройки целых чисел x, y, a (разделённые пробелом), которые квадрат с углами в точках с координатами (x+1,y+1) и (x+a,y+a) . считайте, что большой квадрат имеет координаты углов (1,1) и (n,n) . рёбра всех квадратов параллельны осям координат. (0< =x,y< =n , 1< =a< =n). выходные данные целое число s — площадь фигуры, получившейся после вырезания из большого квадрата всех малых квадратов. примеры входные данные 6 3 3 3 3 4 4 2 5 5 1 выходные данные 27

Показать ответ
Ответ:
krachun77
krachun77
28.09.2020 11:50
#include <stdio.h>
#include <string.h>
#include <algorithm>
 
using namespace std;
 
int main() {
    int n;
    scanf("%d", &n);
    bool a[n][n];
    memset(a, true, sizeof(a));
    int m;
    scanf("%d", &m);
    for (int k = 0; k < m; ++k) {
        int x, y, aa;
        scanf("%d%d%d", &x, &y, &aa);
        for (int i = x; i < min(x + aa, n + 1); ++i) {
            for (int j = y; j < min(y + aa, n + 1); ++j) {
                a[i][j] = false;
            }
        }
    }
    int cnt = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (a[i][j]) {
                cnt++;
            }
        }
    }
    printf("%d", cnt);
    return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота