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

Олимпиада 1999г. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хранение и представление натуральных чисел http://www.cyberforum.ru/cpp-beginners/thread209767.html
Собственно вопрос как их представить? При использование unsigned int n = 0; n -= 1; cout << n; //4294967295 - результат а необходим 0. вариант везде использовать if( n - k < 0) ....;...
C++ Жадный алгоритм Нужно сделать проверку на правильность жадного алгоритма, доказать, что его решение единственно правильное. Кто знает? вот вполне рабочий код с жадным алгоритмом. #include <stdio.h> #include... http://www.cyberforum.ru/cpp-beginners/thread209761.html
скажите что нет так C++
В двумерном массиве хранятся данные об оценках N студентов по М предметам. Номер строки соответствует номеру студента в группе, номер столбца – предмету. Опре-делить K самых успешных студентов. ЕСЛИ...
C++ Указатели
Доброго времени суток! Мне очень нужна помощь! Нужно написать программу, которая, используя УКАЗАТЕЛИ на функции для их вызова, вычисляет цепную дробь: n+1/(n-1)+1/(n-2)+...+1/2. Все дело в том, что...
C++ Удаление узла из дерева http://www.cyberforum.ru/cpp-beginners/thread209731.html
сделав функции добавления,поиска,пару обходов и вывод ввиде дерева в консоли(жаль что нельзя размер по x изменить) при тестировании возникла проблема удаления. суть в том что когда я удаляю элементы...
C++ Разделить на два массива Есть N строк вида: a1 b2 c3 хочу разделить их на два символьных массива что бы a,b,c в один, а числа в другой. Код: void main() { int N; char c,t; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
13.12.2010, 14:50
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 <stdio.h>
#include <math.h>
int main()
{
      freopen("input.txt","r",stdin);
      freopen("output.txt","w",stdout);
        int N, K, i, j, **mas1, **mas2, *mas_res, i_res=1, temp;
        scanf("%d %d", &N, &K);
        mas1=new int*[N];
        mas2=new int*[N];
        mas_res=new int[N];
        for(i=0; i<N; i++)
        {
            mas1[i]=new int[K];
            mas2[i]=new int[K];
            for(j=0; j<K; j++)
                scanf("%d", &mas1[i][j]);
        }
        for(i=0; i<K; i++)
        {
            temp=0;
            for(j=0; j<K; j++)
                if(mas1[N-1][j])
                    temp+=abs(i-j);
            mas2[N-1][i]=temp;
        }
        for(i=N-2; i>=0; i--)
        {
            for(j=0; j<K; j++)
            {
                temp=mas2[i+1][j];
                if(j>0 && temp>mas2[i+1][j-1])
                    temp=mas2[i+1][j-1];
                if(j<K-1 && temp>mas2[i+1][j+1])
                    temp=mas2[i+1][j+1];
                for(int y=0; y<K; y++)
                    if(mas1[i][y])
                        temp+=abs(y-j);
                mas2[i][j]=temp;
            }
        }
        temp=0;
        for(i=0; i<K; i++)
            if(mas2[0][i]<mas2[0][temp])
                temp=i;
        mas_res[0]=(N-1)*K+temp+1;
        int temp_N=1;
        while(temp_N<=N-1)
        {
            int temp2=temp;
            if(temp>0 && mas2[temp_N][temp2]>mas2[temp_N][temp-1])
                temp2=temp-1;
            if(temp<K-1 && mas2[temp_N][temp2]>mas2[temp_N][temp+1])
                temp2=temp+1;
            mas_res[i_res++]=(N-temp_N-1)*K+temp2+1;
            temp_N++;
            temp=temp2;
        }
        i_res--;
        while(i_res>=0)
            printf("%d\n", mas_res[i_res--]); 
        return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru