科大訊飛2019校の筆記試験

3628 ワード

成績を改める
時間制限:C/C++言語1000 MS;その他言語3000 MSメモリ制限:C/C++言語65536 KB;その他の言語589824 KB
タイトルの説明:
華先生のn人の学生は模擬試験に参加して、試験した点数はとても悪いですが、華先生は成績を[001]の任意の値に修正することができます.だから、彼はすべての人の成績の平均点をX点以上にするには、少なくとも何人の点数を変更しなければならないか知りたいと思っています.
入力
第1行1個数T、共T組データ(T≦10)
次に、各グループのデータについて、
1行目の2つの整数nとX.(1≤n≤1000, 0≤X≤100)
2行目n個の整数、i番目の数Aiはi番目の学生の成績を表す.(0≤Ai≤100)
しゅつりょく
合計T行で、行ごとに1つの整数で、最も少ない人数を表します.
サンプル入力2 5 5 60 59 20 30 90 100 5 60 59 20 10 100サンプル出力1 2 Hint:第1グループデータに対して59を60に変更すればよい
#include 
#include
using namespace std;
int cmp(int a,int b){
    return a>b;
}
int main() {
    int t;
    cin>>t;
    while(t--){
        int n,m;
        int sum=0;
        cin>>n>>m;
        int a[n];
        int b[n];
        for(int i=0;i>a[i];
            sum+=a[i];
            b[i]=100-a[i];
        }
        
        sort(b,b+n,cmp);
        int left=n*m-sum;
        if(left<=0) cout<<0<=left){
                    cout<

殺し屋
時間制限:C/C++言語1000 MS;その他言語3000 MSメモリ制限:C/C++言語65536 KB;その他の言語589824 KB
タイトルの説明:
n人の殺し屋が1列に並んでいて、それぞれの殺し屋には異なる番号(番号1-n)があって、毎晩、殺し屋は行動して、もしある殺し屋の番号が彼の右の殺し屋の番号より大きいならば、彼は彼の右の殺し屋を殺して、殺し屋の行動は瞬間的で、そのため一人はある夜他の人を殺してまた他の人に殺されるかもしれません.例えば、3,2,1という順番で、最初の夜に2が1を殺し、同時に3が2を殺す.
明らかに、しばらくしてから、誰かが殺されたり殺されたりすることはありません.クリスマスイブが来ました.クリスマスイブの前に何夜ありますか.
入力
入力第1行は、殺し屋の数を表す整数n(1≦n≦100000)である.
次の行にはn個の数があり、1−nの全配列である.
しゅつりょく
出力には、クリスマスイブまでに何回の夜を経験したかを示す整数が含まれます.
サンプル入力10 10 10 9 7 8 6 5 3 4 1サンプル出力2 Hint補完サンプル入力サンプル2:6 1 2 3 4 5 6出力サンプル2:0サンプル解釈:サンプル1における殺し屋の変化は[10 9 7 8 8 8 6 5 4 2]-[10 8 4]-[10]であるため、答えは2である.
#include 
#include
using namespace std;
const int maxn=1e5+5;
int cnt=0;
vector a;
int x;
int main() {
    int n,x;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        a.push_back(x);
    }
    bool flag=true;
    int cnt=0;
    while(flag){
        vector next;
        next.push_back(a[0]);
        for(int i=1;ia[i-1]){
                next.push_back(a[i]);
            }
        }
        if(next.size()

大物のpythonバージョンを添付します
"""
2
5 60
59 20 30 90 100
5 60
59 20 10 10 100

"""

groups = int(input())
for i in range(groups):
    tmp = input().split()
    people, score = int(tmp[0]), int(tmp[1])
    tmp = input().split()
    scores = [int(i) for i in tmp]
    sums = sum(scores)
    times = 0
    while sums < people * score:
        min_score = min(scores)
        min_idx = scores.index(min_score)
        sums += 100-min_score
        times += 1
        del scores[min_idx]
    print(times)




"""
10
10 9 7 8 6 5 3 4 2 1
"""

people_num = int(input())
tmp = input().split()
slatters = [int(i) for i in tmp]
def existKill(slatters):
    res = 0
    kills_idx = []
    for i in range(len(slatters)-1, 0, -1):
        if slatters[i] < slatters[i-1]:
            res += 1
            kills_idx.append(i)
    new_slatters = [slatters[i] for i in list(set([j for j in range(len(slatters))]) - set(kills_idx))]
    return (res, new_slatters)

nights = 0
while existKill(slatters)[0]:
    # print('old: ', slatters)
    slatters = existKill(slatters)[1]
    # print('new: ', slatters)
    nights += 1
print(nights)