1. 程式人生 > 實用技巧 >[CF從零單排#11]69A - Young Physicist

[CF從零單排#11]69A - Young Physicist

題目來源:http://codeforces.com/problemset/problem/69/A

A guy named Vasya attends the final grade of a high school. One day Vasya decided to watch a match of his favorite hockey team. And, as the boy loves hockey very much, even more than physics, he forgot to do the homework. Specifically, he forgot to complete his physics tasks. Next day the teacher got very angry at Vasya and decided to teach him a lesson. He gave the lazy student a seemingly easy task: You are given an idle body in space and the forces that affect it. The body can be considered as a material point with coordinates (0; 0; 0). Vasya had only to answer whether it is in equilibrium. "Piece of cake" — thought Vasya, we need only to check if the sum of all vectors is equal to 0. So, Vasya began to solve the problem. But later it turned out that there can be lots and lots of these forces, and Vasya can not cope without your help. Help him. Write a program that determines whether a body is idle or is moving by the given vectors of forces.

Input
The first line contains a positive integer n (1 ≤ n ≤ 100), then follow n lines containing three integers each: the x i coordinate, the y i coordinate and the z i coordinate of the force vector, applied to the body ( - 100 ≤ x i, y i, z i ≤ 100).

Output
Print the word "YES" if the body is in equilibrium, or the word "NO" if it is not.

Examples
input
3
4 1 7
-2 4 -1
1 -5 -3
output
NO
input
3
3 -1 7
-5 2 -4
2 -1 -3
output
YES

題目大意:

第一行輸入一個整數n,接下來有n行資料,每行代表著向量的三維座標(x,y,z)的值。問經過n個向量的調整後,能回到原點(0,0,0)嗎?如果可以,輸出YES,否則輸出NO。

題目分析:

模擬題,只需要將所有的x值進行求和,y值進行求和, z值進行求和。問最後三個的值是否都為0.

參考程式碼:

#include <bits/stdc++.h>
using namespace std;
int main(){
	int n, x, y, z, a, b, c;
	cin >> n;
	a = b = c = 0;
	for(int i=1; i<=n; i++){
		cin >> x >> y >> z;
		a += x;
		b += y;
		c += z;
	}
	if(a==0 && b==0 && c==0)
		cout << "YES";
	else
		cout << "NO";
	return 0;
}