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;
}
}