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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Текущую дату сравнить с заданной датой http://www.cyberforum.ru/cpp-beginners/thread915662.html
Задача, написать и вывести "hello world", если текущая дата старше заданной даты (например, 2 июля 2013). #include <iostream> #include <ctime> #include <time.h> using namespace std; void main(){ _SYSTEMTIME s; GetLocalTime(&s); int d,m,y;
C++ В предложении удалить все вхождения “th”. Результат вывести на экран Очень прошу помогите сделать,знаю она лёгкая,но сам не успеваю не чего((( 6. В предложении удалить все вхождения “th”. Результат вывести на экран. http://www.cyberforum.ru/cpp-beginners/thread915660.html
C++ Построчное чтение в массив из строк
Как реализовать чтение из словаря по одной строке перенос в строковые переменные? #include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std;
Создание экземпляр класса из другого класса C++
Добрый день, форумчане. Помогите разобраться с такой плюсовенькой проблемой: есть 2 класса (назовем их A & B). Нужно в классе B запустить конструктор класса А, но так, чтоб с созданным экземпляром можно было поработать где-то еще (отправить его в какой-то класс С в теле main, к примеру). Намекните, пожалуйста, как это сделать.
C++ Доступ к нужному биту через битовые поля http://www.cyberforum.ru/cpp-beginners/thread915644.html
Добрый день! Допустим, есть такой код. #include <iostream> #include <conio.h> using namespace std; struct byte { unsigned a : 1; unsigned b : 1; unsigned c : 1;
C++ Почему работает присваивание Пример из книги. Немогу понять, почему работает присваивание в main.cpp, ведь оператор = не перегружен?!?! //Complex.h #ifndef COMPLEX_H #define COMPLEX_H #include <iostream> подробнее

Показать сообщение отдельно
nuts23
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 30
01.07.2013, 14:42     Задача "Строение"
Здравствуйте.
Проблема с решением задачи "Строение" (_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, + если совпадающие проекты с участком частника
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru