# Greedy# Array# Simple Calculation

g307 - pA. 為了好吃的蘋果派(Apple Pie)

🔗 前往 ZeroJudge 原題

題目描述

題目要求判斷 N 個蘋果派是否通過品管測驗。對於每個蘋果派,有 K 個人進行評分。評分時,會捨棄最高分和最低分,然後計算剩餘 K-2 個分數的平均值。如果平均值大於或等於給定的閾值 T,則該蘋果派被認為是及格的。程式需要輸出所有及格蘋果派的編號,從小到大排列。如果沒有及格的蘋果派,則輸出 "A is for apple."。

解題思路

對於每個蘋果派,程式首先讀取 K 個評分,然後找出最高分和最低分。接著,計算剩餘 K-2 個分數的總和,並除以 (K-2) 得到平均值。如果平均值大於或等於 T,則輸出該蘋果派的編號。如果遍歷完所有蘋果派後,沒有找到及格的蘋果派,則輸出 "A is for apple."。

複雜度分析

  • 時間複雜度: O(N * K)
  • 空間複雜度: O(K)

程式碼

#include <iostream>
using namespace std;
int main(){
	cin.tie(0); ios::sync_with_stdio(false);
	int n,k,t,ac=0,v;
	cin >> n >> k >> t;
	for(int i=0;i<n;++i){
		int mi=1005,ma=0,s=0;
		for(int j=0;j<k;++j){
			cin >> v;
			mi=min(v,mi);
			ma=max(v,ma);
			s+=v;
		}
		if((s-mi-ma)/(k-2)>=t){
			ac=1;
			cout << i << "\n";
		}
	}
	if(ac==0){
		cout << "A is for apple." << endl;
	}
}

Discussion