天天看點

PAT-BASIC1082——射擊比賽

我的PAT-BASIC代碼倉:https://github.com/617076674/PAT-BASIC

原題連結:https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608

題目描述:

PAT-BASIC1082——射擊比賽

知識點:格式化輸出

思路:按題述程式設計即可

注意:最後輸出編号的時候需要格式化輸出,前面補0至4位。

時間複雜度是O(N)。空間複雜度是O(1)。

C++代碼:

#include<iostream>

using namespace std;

int main(){
	int N;
	cin >> N;
	
	int tempID;
	int tempX;
	int tempY;
	int tempDistance;
	
	int winnerID;
	int rookieID;
	
	int cloestDistance;
	int longestDistance;
	
	cin >> tempID >> tempX >> tempY;
	
	winnerID = tempID;
	rookieID = tempID;
	
	cloestDistance = tempX * tempX + tempY * tempY;
	longestDistance = tempX * tempX + tempY * tempY;
	
	for(int i = 1; i < N; i++){
		cin >> tempID >> tempX >> tempY;
		tempDistance = tempX * tempX + tempY * tempY;
		if(tempDistance < cloestDistance){
			winnerID = tempID;
			cloestDistance = tempDistance;
		}
		if(tempDistance > longestDistance){
			rookieID = tempID;
			longestDistance = tempDistance;
		}
	}
	
	printf("%04d %04d", winnerID, rookieID);
	
	return 0;
}
           

C++解題報告:

PAT-BASIC1082——射擊比賽