Задача с двумерным массивом

161
02 июня 2019, 15:10

Суть задачи:

Дан двумерный массив, размер задан в файле, массив квадратный, со стороной size элементов (2 на 2, 3 на 3 и т.д.). Найти сумму элементов двумерного массива по периметру и по главным диагоналям.

Пример данных и ответа:
Ввод :

4
0 1 2 3
4 5 6 7
8 9 0 1
2 3 4 5

Вывод :

60

Вот мой код, решение вроде верное, но чуть меньше половины тестов завалено, где ошибка и как её исправить?

#include <fstream>
using namespace std;
int main() {
    ifstream inp;
    ofstream otp;
    inp.open("input.txt");
    otp.open("output.txt");
    int size = 0, answer = 0, N[100][100], P = 0, d1 = 0, d2 = 0, temp = 0;
    inp >> size;
    if (size % 2 != 0) {
        temp = (size - 1) / 2;
    }
    for (int x = 0; x < size; x++) {
        for (int i = 0; i < size; i++) {
            inp >> N[x][i];
            if (x == 0 || x == size - 1) {
                if (i > 0 && i < size - 1) {
                    P += N[x][i];
                }
            }
            if (i == 0 || i == size - 1) {
                if (x > 0 && x < size - 1) {
                    P += N[x][i];
                }
            }
            if (size % 2 == 0) {
                if (x == i && x > 0 && x < size - 1) {
                    d1 += N[x][i];
                }
                if (x + i == size - 1 && x > 0 && i > 0) {
                    d2 += N[x][i];
                }
            }
            else {
                if (x == i && x > 0 && x < size - 1 && x != temp) {
                    d1 += N[x][i];
                }
                if (x + i == size - 1 && x > 0 && i > 0 && x != i) {
                    d2 += N[x][i];
                }
            }
        }
    }
    answer += P + d1 + d2 + N[temp][temp] + N[0][0] + N[size - 1][size - 1] + N[size - 1][0] + N[0][size - 1];
    otp << answer;
    return 0;
}
Answer 1
inp >> t;
if (x == 0 || x == size - 1 || y == 0 || y == size - 1 || x==y || x+y==size-1)
    sum += t;
READ ALSO
Сумма цифр числа 100!

Сумма цифр числа 100!

Написал код для подсчета суммы цифр в числе 100! для решения задачи на Проекте ЭйлераДо этого успешно использовал кусок кода, который непосредственно...

134
Упорядочивание файлов в папке

Упорядочивание файлов в папке

Есть вот такая задачка:

139