Loading...
petarstoyanov98 avatar petarstoyanov98 47 Точки

Hourglass Sum - List and Matricies - Exercises

Привет отново, програмата ми не минава един от тестовете и остава на 83 точки. 

Проверих другата тема, в която проблемът е същия като моя, но там алгоритъма е друг, така че не можах да си помогна.

Поради тази причина създадох тази тема.

Условие: https://softuni.bg/downloads/svn/soft-tech/May-2016/Programming-Fundamentals-May-2016/04.%20Programming-Fundamentals-Lists-and-Matrices/04.%20Programming-Fundamentals-Lists-and-Matrices-Exercises.docx

 

Код:

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int rows = 6;
        int cols = 6;
        int[][] matrix = new int[rows][];
        for (int row = 0; row < rows; row++)
        {
            matrix[row] = Console.ReadLine().Split().Select(int.Parse).ToArray();
        }

        int maxValue = int.MinValue;
        for (int row = 0; row < rows-2; row++)
        {
            for (int col = 0; col < cols-2; col++)
            {
                int sum = 0;
                if (matrix[row][col]>0)
                {
                    sum = matrix[row][col] + matrix[row][col + 1] + matrix[row][col + 2]
                        + matrix[row + 1][col + 1]
                        + matrix[row + 2][col] + matrix[row + 2][col + 1]+ matrix[row + 2][col + 2];
                }
                if (sum>maxValue)
                {
                    maxValue = sum;
                }

            }
        }
        Console.WriteLine(maxValue);
    }
}

Благодаря предварително!

Тагове:
1
Fundamentals Module
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Нямам в момента Visual Studio,но едното нещо което веднага виждам е че правиш сума на int числа и очакваш да ти даде int което не е вярно промени го на long защото вероятно ти препълва типа данни.Най-лестният начин да разбереш дали е това направи всичко на long и виж дали ще ти даде 100/100.

Пиши дали е това.

0
31/08/2016 03:12:26
Innos avatar Innos 419 Точки

Добавяне към коментара на колегата, защо имаш тази проверка:
if (matrix[row][col]>0)
аз не виждам в условието да пише че ще има само положителни числа. Дори и началната клетка на hourglass-a да е отрицателно число или нула, все пак може да е часовника с най-голяма сума.

0
31/08/2016 09:28:21
petarstoyanov98 avatar petarstoyanov98 47 Точки

Проблемът не е бил в типа данни, а в условието ми. Промених го както каза колегата на:

 if (matrix[row][col] >= 0|| matrix[row][col] < 0)

Вече ми дава 100 точки.  

Благодаря ви за помощта!

1
31/08/2016 12:03:20
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.