1. 成績指標

題解

先把成績序列排序後,對於序列內每個element偵測,如果小於60並且大於a就替換a,如果大於60並且小於b就替換b,如果a沒有改變過(最後執行完=-1),則此測資為best case,如果b沒有改變過(最後執行完=101),則代表此測資為worst case,最後依序輸出即是答案

AC Code

python

from sys import stdin
n=int(stdin.readline().strip())
data=list(map(int,stdin.readline().strip().split()))
data.sort()
a=-1
b=101
for i in data:
    if i<60:
        a=max(i,a)
    else:
        b=min(i,b)
print(*data)
if a==-1:
    print("best case")
else:
    print(a)
if b==101:
    print("worst case")
else:
    print(b)

C++

#include<bits/stdc++.h>
using namespace std;
int main(){
    io::sync_with_stdio(false);
    cin.tie(0);

    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a.begin(),a.end());
    int a=-1,b=101;
    for (auto x:a){
        if (x<60){
            a=max(a,x);
        }
        else{
            b=min(b,x);
        }
        cout<<x<<" ";
    }
    cout<<endl;
    if (a==-1){
        cout<<"best case"<<endl;
    }
    else{
        cout<<a<<endl;
    }
    if(b==101){
        cout<<"worst case"<<endl;
    }
    else{
        cout<<b<<endl;
    }
}