Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Temirlan90
133 / 133 / 8
Регистрация: 30.09.2010
Сообщений: 333
#1

Выясните, можно ли одну из коробок положить в другую - C++

21.04.2011, 21:17. Просмотров 868. Ответов 5
Метки нет (Все метки)

Коробки
(Время: 1 сек. Память: 16 Мб Сложность: 19%)

На столе лежат коробка размера A1 ? B1 ? C1 и коробка размера A2 ? B2 ? C2. Выясните можно ли одну из этих коробок положить в другую, если разрешены повороты коробок вокруг любого ребра на угол 90 градусов.
Входные данные

Первая строка входного файла содержит три целых числа A1, B1 и C1. Вторая строка входного файла содержит три целых числа A2, B2 и C2. Все числа положительны и не превосходят 1000.
Выходные данные

Если коробки одинаковы, выведите "Boxes are equal". Если первая коробка может быть положена во вторую, выведите "The first box is smaller than the second one". Если вторая коробка может быть положена в первую, выведите "The first box is larger than the second one". Иначе, выведите "Boxes are incomparable".
Примеры
INPUT.TXT
1) 1 2 3
3 2 1
2) 2 2 3
3 2 1
3) 2 2 3
3 2 3
4) 3 4 5
2 4 6
OUTPUT.TXT
1) Boxes are equal
2) The first box is larger than the second one
3) The first box is smaller than the second one
4) Boxes are incomparable
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
#include <iostream>
const int size = 3;
using namespace std;
int main() {
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    int a[size], b[size], tempa = 0, tempb = 0;
    cin >> a[0] >> a[1] >> a[2]
    >> b[0] >> b[1] >> b[2];
    for(int i = 0; i < size; ++i) {  
        for(int j = size - 1; j > i; j--) {  
            if (a[j - 1] < a[j] ) { 
                tempa = a[j - 1]; 
                a[j - 1] = a[j]; 
                a[j] = tempa;  
            }
        }
    }
    for(int i = 0; i < size; ++i) {  
        for(int j = size - 1; j > i; j--) {  
            if (b[j - 1] < b[j] ) { 
                tempb = b[j - 1]; 
                b[j - 1] = b[j]; 
                b[j] = tempb;  
            }
        }
    }
    if((a[0] == b[0]) && (a[1] == b[1]) && (a[2] == b[2]))
        cout << "Boxes are equal";
    else
        if((a[0] <= b[0]) && (a[1] <= b[2]) && (a[2] <= b[2]))
            cout << "The first box is smaller than the second one";
        else
            if((a[0] >= b[0]) && (a[1] >= b[1]) && (a[2] >= b[2]))
                cout << "The first box is larger than the second one";
            else
                cout << "Boxes are incomparable";
    system("pause >> void");
    return 0;
}
На 6-тесте не проходит.
Я не понимаю, вроде бы все по логике...хотя ошибка есть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 21:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выясните, можно ли одну из коробок положить в другую (C++):

Можно ли разместить одну из коробок внутри другой? - C++
Почему то не правильно работает, помогите!!! вот условие:Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2....

можно ко из Matlab положить на язык CCS v3.1 - C++
достаточно только перевести в язык си.... если вдруг необходимо.... задание: нужно составить рабочий код для &quot;расчета и программной...

Вставить одну последовательность чисел в другую - C++
Пользователь вводит в программу через консоль последовательность положительных целых чисел, завершая ввод нулем либо отрицательным числом....

Заменить в файле одну строку на другую - C++
Реализовать в программе функцию замену в текстовом файле заданной строки на другую строку, также задаваемую с клавиатуры.

Заменить в строке одну последовательность символов на другую - C++
Нужно ввести строку, создать вторую из символов первой, заменив каждую последовательность символов &quot;xyz&quot; заменить на &quot;zamenena&quot; и вывести...

В заданом тексте поменять одну букву на другую - C++
Создайте программу,которая в заданом тексте меняет одну букву на другую.Какие именно буквы менять,вводить с клавиатуры. Добавлено...

5
x1Mike7x
218 / 131 / 6
Регистрация: 06.11.2010
Сообщений: 234
21.04.2011, 22:35 #2
Если ты проверяешь просто стороны на больше-меньше ( все стороны 1 коробки больше/меньше сторон второй ), то это не правильно.
Вот пример на 2Д - аналогичная задача, но только в 2 измерениях:
Есть конверт и листок, заданы их ширина и длина.
Допустим есть конверт со сторонами 5 х 5 и листок со сторонами 6 х 1.
При простой проверке сторон окажется, что одна сторона листка больше, а другая меньше, вывод - не влезет.
Но можно ведь положить этот листок бумаги в конверт так, чтобы он лежал по диагонали конверта и листок полностью поместится.
От этого можно отталкиваться для решения задачи в 3Д.
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
22.04.2011, 05:07 #3
x1Mike7x, внимательно читаем условие задачи.

Temirlan90, не все сдесь имеют понятие откуда взята эта задач, и что представляет из себя 6 тест. Могу только сказать, что прм проверке на неравенство нужно использовать строгое неравенство "<"">", а не "<="">=".

Добавлено через 14 минут
И в конце system("pause") убрать.
0
Temirlan90
133 / 133 / 8
Регистрация: 30.09.2010
Сообщений: 333
22.04.2011, 08:29  [ТС] #4
kazak, system("pause"), Я убираю, иначе будет превышен лимит времени, Я про это знаю=)
А вот на счет строгого неравенства тогда во втором примере будет ошибка.
Я тоже не знаю что за 6 тест =).
0
kazak
3051 / 2372 / 160
Регистрация: 11.03.2009
Сообщений: 5,437
Завершенные тесты: 1
22.04.2011, 09:07 #5
В противном случан проверка на равенство бессмысленна, тогда составители где-то напутали или с условием, или с примером. На каком сайте эта задача?
0
Temirlan90
133 / 133 / 8
Регистрация: 30.09.2010
Сообщений: 333
22.04.2011, 09:59  [ТС] #6
[404]

Добавлено через 11 минут
Данный код прошел все тесты, Всем спасибо кто обратил на данную тему внимание =).
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
const int size = 3;
using namespace std;
int main() {
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    int a[size], b[size], tempa = 0, tempb = 0;
    cin >> a[0] >> a[1] >> a[2]
    >> b[0] >> b[1] >> b[2];
    for(int i = 0; i < size; ++i) {  
        for(int j = size - 1; j > i; j--) {  
            if (a[j - 1] < a[j] ) { 
                tempa = a[j - 1]; 
                a[j - 1] = a[j]; 
                a[j] = tempa;  
            }
        }
    }
    for(int i = 0; i < size; ++i) {  
        for(int j = size - 1; j > i; j--) {  
            if (b[j - 1] < b[j] ) { 
                tempb = b[j - 1]; 
                b[j - 1] = b[j]; 
                b[j] = tempb;  
            }
        }
    }
    if(a[0] > b[0])
        if(a[1] >= b[1])
            if(a[2] >= b[2])
                cout << "The first box is larger than the second one";
            else
                cout << "Boxes are incomparable";
        else
            cout << "Boxes are incomparable";
    else 
        if(a[0] < b[0])
            if(a[1] <= b[1])
                if(a[2] <= b[2])
                    cout << "The first box is smaller than the second one";
                else
                    cout << "Boxes are incomparable";
            else
                cout << "Boxes are incomparable";
        else
            if(a[1] > b[1])
                if(a[2] >= b[2])
                    cout << "The first box is larger than the second one";
                else
                    cout << "Boxes are incomparable";
            else
                if(a[1] < b[1])
                    if(a[2] <= b[2])
                        cout << "The first box is smaller than the second one";
                    else
                        cout << "Boxes are incomparable";
                else
                    if(a[2] > b[2])
                        cout << "The first box is larger than the second one";
                    else
                        if(a[2] < b[2])
                            cout << "The first box is smaller than the second one";
                        else
                            cout << "Boxes are equal";  
    system("pause >> void");
    return 0;
}
1
22.04.2011, 09:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2011, 09:59
Привет! Вот еще темы с ответами:

Почему не срабатывает услоивие ни в одну ни в другую сторону - C++
mingw char S1=&quot;Hello&quot;; char S2={}; cin.getline(S2,255); if (S1==S2) cout&lt;&lt;&quot;OK&quot;; else cout&lt;&quot;NO&quot;; Не выводит...

Можно ли разместить одну из коробок внутри другой - Visual Basic
Помоги, пожалуйста! Ввести с клавиатуры размеры 2-х коробок (A1×B1×C1 и A2×B2×C2). Вывести на экран, можно ли разместить одну из этих...

В Accesse можно одну форму вставлять в другую. А в VB можно ? - Visual Basic
В Accesse можно одну форму вставлять в другую. А в VB можно, чтобы одна форма была подформой для другой и между ними была связь ?

Можно ли одну программу вставить в другую? - PascalABC.NET
Можно ли в паскале одну программу вставить в другую. Если да, то как? Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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