**这次周赛只能做出来一道,,,还是太菜
第一道:**
给定 n 个整数三元组 (xi,yi,zi)。
请你判断这些整数三元组是否能够同时满足以下三个条件:
所有 xi 相加之和为 0。
所有 yi 相加之和为 0。
所有 zi 相加之和为 0。
输入格式
第一行包含整数 n。
接下来 n 行,每行包含三个整数 xi,yi,zi。
输出格式
如果能够同时满足三个条件,则输出 YES,否则输出 NO。
数据范围
前三个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤100,−100≤xi,yi,zi≤100。
输入样例1:
4
3 -1 7
-5 2 -4
0 -2 -1
2 1 -2
输出样例1:
YES
输入样例2:
3
4 1 7
-2 4 -1
1 -5 -3
输出样例2:
NO
思路:这道题本身不难,我刚好开始想到笨方法:用啥东西存储起来再单独拿出来相加,但是我又想到:既然每一个相加为零那么总和为零不就行了,我点击测试,显示正确,但是提交的时候,显示错误,我就再想,突然我想到,有没有碰巧第一列为-1,而第二三列有一列为1,另一列为0,正好全部相加为零,但是又不符合题目要求,所以,又回到了起点,只能找东西储存起来,在之后相加判断了(emo。。。)
源代码:
include
include
include
using namespace std;
int main()
{
int n,sum; cin >> n; int a[n][3]; for (int i = 0; i < n; i ++ ) { for (int j = 0; j <3; j ++ ) { cin >>a[i][j]; } } for (int i = 0; i < 3; i ++ ) { sum=0; for (int j = 0; j < n; j ++ ) { sum=sum+a[j][i]; } if(sum==0) { continue; }else{ break; } } if(sum==0) { cout << "YES"<<endl; }else { cout << "NO"<<endl; } return 0;
}