Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > задачка по матрице!


Автор: H5N1 3.1.2008, 21:23
Срочно!!!Очень! Или выпихнут мну нафиг!!!

Условие:
Квадратная матрица размером NxN заполнена целыми числами из промежутка [-9; 9]. Назовем фигурой всякую часть этой матрицы, состоящую из K последовательных строк и K последовательных столбцов. Сумму всех чисел в этой фигуре назовем суммой фигуры. Напишите программу, которая определит фигуру с максимальной суммой

Прошу пожалйста помогите а то мне пиз ... кароче помогите


Автор: JackYF 3.1.2008, 21:25
H5N1, не плоди темы.

Автор: H5N1 3.1.2008, 21:26
Ну а вот писать всякую "не плоди темы" мы умеем! а вот помочь можеш? ето все нервы мне срочно надо

Автор: bsa 3.1.2008, 21:35
H5N1, ты не по адресу - тебе в http://forum.vingrad.ru/forum/Vingrad-help-center.html.

Автор: H5N1 3.1.2008, 21:37
[censored 6]! да писал я туда все молчат!!!

Автор: Alek86 3.1.2008, 21:44
кажется, там нужно говорить сумму, за которую тебе решат

Автор: JackYF 3.1.2008, 21:44
Цитата(H5N1 @  3.1.2008,  21:37 Найти цитируемый пост)
да писал я туда все молчат!!! 

это не повод нарушать правила форума.

значит, не судьба.

Добавлено через 33 секунды

 ! 
JackYF
Остынь, пожалуйста, и уясни, что тебе здесь никто не нанимался помогать.

Автор: bsa 3.1.2008, 21:46
H5N1, как дана матрица? в файле или с клавиатуры вводится?

Автор: H5N1 3.1.2008, 21:48
вводица с клавиатуры!

Автор: bsa 4.1.2008, 00:21
Код
#include <iostream>
#include <iomanip>
#include <vector>

typedef std::vector<int> IntVector;
typedef std::vector<IntVector> IntMatrix;


int calc_figure(const IntMatrix &matrix, int x, int y, int w, int h)
{
        int result = 0;
        while(h--) {
                if (y >= matrix.size())
                        y -= matrix.size();
                const IntMatrix::value_type &row = matrix[y];
                for(int i = 0, c = x; i < w; ++i, ++c) {
                        if (c >= row.size())
                                c -= row.size();
                        result += row[c];
                }
                ++y;
        }
        return result;
}

int main()
{
        int rows, cols;
//      std::cout << "input columns count of matrix: " << std::flush;
        std::cout << "input matrix size: " << std::flush;
        std::cin >> cols;
//      std::cout << "input rows count of matrix: " << std::flush;
//      std::cin >> rows;
        rows = cols;
        IntMatrix matrix(rows, IntVector(cols));
        std::cout << "You should separate all row element by space" << std::endl;
        for(int i = 0; i < rows; ++i) {
                std::cout << "Please enter matrix line #" << i << ": " << std::flush;
                for(int j = 0; j < cols; ++j)
                        std::cin >> matrix[i][j];
        }

        int max_sum=matrix[0][0], max_x=0, max_y=0, max_w=1, max_h=1;
        for(int y = 0; y < rows; ++y)
                for(int x = 0; x < cols; ++x)
                        for(int h = 1; h <= rows; ++h)
                                for(int w = 1; w <= cols; ++w) {
                                        const int t = calc_figure(matrix, x, y, w, h);
                                        if (t > max_sum) {
                                                max_sum = t;
                                                max_x = x;
                                                max_y = y;
                                                max_w = w;
                                                max_h = h;
                                        }
                                }

        for(int i = 0; i < rows; ++i) {
                for(int j = 0; j < cols; ++j)
                        std::cout << std::setw(3) << matrix[i][j];
                std::cout << std::endl;
        }
        std::cout << "max sum found at (" << max_x << "," << max_y << ":" << max_w << "," << max_h <<") and equals to " << max_sum << std::endl;
        return 0;
}

Автор: H5N1 4.1.2008, 10:41
bsa, почемуто в ответе выводит какието дробные числа
З.Ы. а в программе не проще было писать по русски, а то я с англ. не дружу

Добавлено через 4 минуты и 38 секунд
Потом млин ЧИТАЕМ УСЛОВИЕ ЗАДАЧИ!!!!!!!!!
Назовем фигурой всякую часть этой матрицы, состоящую из K последовательных строк и K последовательных столбцов. Сумму всех чисел в этой фигуре назовем суммой фигуры. Напишите программу, которая определит фигуру с максимальной суммой
 Наскока даже я, не эксперт понимаю что должно вводиться К

Автор: MAKCim 4.1.2008, 11:43
H5N1, 

 ! 
MAKCim

Модератор: 
1. Если будете и дальше разговаривать в таком тоне, получите бан!
2. Минус получаете прямо сейчас за игнорирование замечаний модераторов!

Автор: H5N1 4.1.2008, 11:50
Цитата(MAKCim @  4.1.2008,  11:43 Найти цитируемый пост)
Модератор: 
1. Если будете и дальше разговаривать в таком тоне, получите бан!
2. Минус получаете прямо сейчас за игнорирование замечаний модераторов!


Спасибо вам большое модератор! Включаем мозги - что значит не дублируй? Мне что её удалить? но как я же не админ. 

Автор: MAKCim 4.1.2008, 11:55
Цитата(H5N1 @  4.1.2008,  11:50 Найти цитируемый пост)
Включаем мозги - что значит не дублируй? Мне что её удалить? но как я же не админ. 

товарищ, вы сейчас точно договоритесь до бана
не дублируй = не создавай однотипных тем в разных разделах
у вас уже 3 одинаковых темы
если кто-то где-то вам не хочет отвечать или помогать, это не повод плодить темы
лучше задумайтесь, почему так происходит

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)