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

Задача с olympiads.ru - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить треугольники минимальной и максимальной площади, которые можно построить из отрезков http://www.cyberforum.ru/cpp-beginners/thread770609.html
13. Известны длины отрезков a, b, c и d. Определить треугольники минимальной и максимальной площади, которые можно построить из этих отрезков. помогите решить эту задачу с помощью <stdio.h> <math.h> <iostream>
C++ Укажите путь заблудшему Есть строка вида "Alex Johnson|1234678901\nBill Gates|548161198\n" - т.е. "<Абонент>|<номер телефона>\n...". Написал функцию которая принимает в качестве параметра эту строку и возвращает массив структур: ... struct Abonent { char name; char number; }; ... http://www.cyberforum.ru/cpp-beginners/thread770605.html
в проекте - надо в проекте win32api вынести все в другой *cpp* а не получаеться C++
определил функцию в другом спп и в основном ругается компилятор
Определить треугольники минимальной и максимальной площади C++
Известны длины отрезков a, b, c и d. Определить треугольники минимальной и максимальной площади, которые можно построить из этих отрезков.
C++ Определить, пересекаются ли парабола и прямая http://www.cyberforum.ru/cpp-beginners/thread770484.html
Определите, пересекаются ли парабола у=cx2+dx+f и прямая y=ax+b. При положительном ответе найти точки пересечения.
C++ составить программу,которая создает файл, состоящий из 10 значений типа int. прочитать файл и вычислить сумму его элементов составить программу,которая создает файл, состоящий из 10 значений типа int. прочитать файл и вычислить сумму его элементов подробнее

Показать сообщение отдельно
lunohod-1
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 44
26.01.2013, 20:42  [ТС]     Задача с olympiads.ru
Спасибо. Понял, исправил.

Добавлено через 35 минут
Конечно, уже слишком много спрашиваю, но не хватает 70 баллов для более-менее приличного рейтинга
3 задача (про плитку) отлично проходит первую группу тестов, но падает уже на второй...
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
#include <iostream>
double round(double,int); //функция округления
double w,h,a,b,d,e,l,k;
int f,g,sum,n,m;
using namespace std;
 
int main() {
    std::cin>>w>>h;
    std::cin>>a>>b;
    f=w/a; //количество целых в ширину
    g=h/b; //кол-во целых в высоту
    f*=g;  //количество целых
    sum+=f;
    f=w/a;  
    l=w-f*a;//ширина дырки
    f=h/b;
    k=h-f*b;//высота дырки
    if(l<=a/2 && l>0) {
    //режем пополам или больше в ширину
        d=a;
        m=1;
        d-=l;
        while(d>=l) { //режем пока хватает
            d-=l;
            m++;
        }
        sum+=round(h/(b*m),0);
    }
    else {
    if(l>0)
//если не режется
        sum+=h/b;
    }
    
    if(k<=a/2 && k>0) {
//режем в высоту, дальше аналогично
        d=b;
        m=n=1;
        d-=k;
        while(d>=k) {
            d-=k;
            m++;
        }
        sum+=round(w/(a*m),0);
    }
    else {
    if(k>0)
        sum+=round(w/a,0);
    }
//вывод
    std::cout<<sum<<std::endl;
    return 0;
}
 
 
double round(double input, int method) {
method=(method)?method:0;
    switch(method) {
    case 0: return (input-((int)input)>=0.5)?(double)((int)input)+1:(double)(int)input;break;
    case 1: return frac(input>0)?(double)((int)input)+1:(double)(int)input;break;
    case 2: return (double)(int)input;break;
    }
}
 
Текущее время: 20:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru