链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
原神是由米哈游自主研发的一款全新开放世界冒险游戏。游戏发生在一个被称作「提瓦特」的幻想世界,在这里,被神选中的人将被授予「神之眼」,导引元素之力。你将扮演一位名为「旅行者」的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人——同时,逐步发掘「原神」的真相。
现在,你作为异世界的旅行者,发现了一个富含元素能量的神秘正方形矩阵,并邂逅了一位性格迥异、能力独特的同伴——lwy。
矩阵外围着一层厚厚的墙壁,lwy正游荡在矩阵中收集能量值,顽固不化的他将从矩阵的左上角开始,从上、下、左、右、斜对角之中选定一个特定的方向(注意斜对角可能是正对角,也可能是反对角),并朝着这个方向坚定不移地在矩阵中前行,并收集能量值。然而,lwy是个路痴,一旦朝着的这个方向遇到了墙壁,lwy就会改变方向,朝着新的方向继续前行,直至又遇到墙壁,周而复始,直至把所有能走的路都走完……
通俗但不准确的来讲,lwy所走过的路可以如下图所示——
注意,能量值被收集过后将会消失,无法二次收集利用。很可惜lwy记性不好,忘记收集了多少能量值了qwq,聪明的你能帮他算算最终收集了多少能量值吗?
快帮帮lwy吧……qwq。
输入描述:
输入格式
第一行输入一个正整数n,表示一个n×nn\times nn×n的矩阵大小
接下来输入一个n×nn \times nn×n的矩阵,表示矩阵各个位置所具有的能量值
1≤n≤501\le n\le 501≤n≤50
保证矩阵的各个位置的元素均为正整数,且不超过100
输出描述:
输出一个整数,表示最终收集的能量值
示例1
输入
5 1 3 5 7 9 2 4 6 8 10 3 5 7 9 11 4 6 8 10 12 5 7 9 11 13
输出
147
说明
1+3+5+7+9+2+4+8+10+3+7+11+4+6+10+12+5+7+9+11+13=147
这一题我的做法就是把第一行和最后一行加起来,然后再把第一列和最后一列加起来,然后加上左上到右下的对角,最后加上另外一个对角,加过的就标为0,然后加的时候进行判断,就不会有重复
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,j,y=0,a[55][55],x=0,z=0;
cin>>n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cin>>a[i][j];
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
if((i==1||i==n)&&a[i][j]){y+=a[i][j];a[i][j]=0;}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
if((j==1||j==n)&&a[i][j]){y+=a[i][j];a[i][j]=0;}
}
for(i=1;i<=n;i++)
if(a[i][i])
{ y+=a[i][i];a[i][i]=0;}
z=n;
for(i=1;i<=n;i++){
if(a[i][z])
{ y+=a[i][z];a[i][z]=0;}
z--;
}
cout<<y;
return 0;
}