Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30
#1

Задача "Строение" - C++

01.07.2013, 14:42. Просмотров 686. Ответов 4
Метки нет (Все метки)

Здравствуйте.
Проблема с решением задачи "Строение" (_http://********/index.asp?main=task&id_task=501).
Администрация города подбирает площадку для строительства новых спортивных сооружений. На рассмотрении несколько проектов, каждый проект требует выделения некоторого прямоугольного участка земли. Некоторые участки оказались частично или полностью в пользовании частными лицами, а в случае утверждения проекта администрация будет вынуждена выкупить этот участок, поэтому для определения стоимости очень важно знать площадь пересечения участков. Участки частников также прямоугольной формы (рис. 1) и стороны всех участков параллельны координатным осям. Для каждого проекта был построен план, включающий подобранный участок и его окружение. В приведенном примере показано пересечение участков частников (тонкая линия) с участком, подобранным для строительства (толстая линия). Помогите определить суммарную площадь пересечения участков частников с участком, выбранным для строительства.

Входные данные

В первой строке входного файла INPUT.TXT содержится число N - количество участков частников, отображенных на плане. Затем следуют N строк с координатами двух вершин этих прямоугольных участков. В последней строке плана координаты участка, подобранного для строительства. Координаты противоположных вершин одного прямоугольника описываются в формате X1 Y1 X2 Y2. Координатами вершин являются целые, неотрицательные числа, не больше 100. Количество исходных прямоугольников не больше 20.

Выходные данные

В единственную строку выходного файла OUTPUT.TXT следует вывести одно целое число – искомую суммарную площадь пересечения прямоугольников.
Моё решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdio.h>
#include <math.h>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
 
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int A[100][100];
    for (int i = 0; i < 100; ++i)
        for (int j = 0; j < 100; ++j)
        {
            A[i][j] = 0;
        }
    int N;
    scanf("%d", &N);
    int X1[20];
    int Y1[20];
    int X2[20];
    int Y2[20];
    for (int i = 0; i < N; ++i)
        scanf("%d%d%d%d", &X1[i], &Y1[i], &X2[i], &Y2[i]);
    int x3, y3, x4, y4;
    scanf("%d%d%d%d", &x3, &y3, &x4, &y4);
    for (int k = 0; k < N; ++k)
    {
        for (int i = X1[k]; i <= X2[k]; ++i)
            for (int j = Y1[k]; j <= Y2[k]; ++j)
                A[i][j] += 1;
    }
    int S;
    S = 0;
    for (int i = x3+1; i < x4; ++i)
        for (int j = y3+1; j < y4; ++j)
        if (A[i][j] >= 1)
            S += A[i][j];
    printf("%d", S);
    return 0;
}
Исключая по одной клетке с проекта возникает проблема с 4 тестом - WA, + если совпадающие проекты с участком частника
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 14:42     Задача "Строение"
Посмотрите здесь:

Задача со строками (вывести слово, которое содержит ровно три буквы "и") - C++
Здравствуйте, помогите решить задачу. Пользователь вводит предложение с пробелами, запятыми и тп. Нужно вывести слово, которое...

задача по С++ "Мастям игральных карт условно присвоены следующие порядковые номера" - C++
Мастям игральных карт условно присвоены следующие порядковые номера:пики-1, трефы-2 , бубны-3, червы-4. Достоинству карт присвоены...

Задача "сумма цифр стоящих на четных позициях", исправьте пожалуйста ошибки - C++
Дано натуральное число n. Найти сумму цифр числа, находящихся на четных позициях (старшая цифра числа находится на первой позиции). ...

Задача "Дан номер года. Найти число дней в этом году." - C++
Дан номер года. Найти число дней в этом году. Указание. В современном (григорианском) календаре каждый год номер которого делиться на 4,...

Задача на "закрашивание" некоторых элементов матрицы - C++
Имеется матрица чисел 0 и 1 - это некое изображение 0 - белый 1 - черный цвета. Если единицы образуют собой какую нибудь замкнутую область...

Задача: "Слишком длинные слова" (RUNTIME_ERROR) - C++
&quot;RUNTIME_ERROR&quot; при отправлении. В чем ошибка и как сделать правильно? Текст задачи: A. Слишком длинные слова ограничение по...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30
04.07.2013, 11:34  [ТС]     Задача "Строение" #2
Всё ещё нужна помощь.
W910
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 16
08.07.2015, 16:41     Задача "Строение" #3
Нужна помощь тоже

Добавлено через 7 минут
Вы ее не решили?
Excalibur921
594 / 326 / 49
Регистрация: 12.10.2013
Сообщений: 2,295
08.07.2015, 17:00     Задача "Строение" #4
Интересно у вас айпи одно, или просто согрупники .
magirus
08.07.2015, 17:23     Задача "Строение"
  #5

Не по теме:

Excalibur921, у них разница в два года...

Yandex
Объявления
08.07.2015, 17:23     Задача "Строение"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru