1 solutions

  • 0
    @ 2024-5-23 17:07:30

    这题先循环判断,用结构体排序后输出。

    #include <bits/stdc++.h>
    using namespace std;
    int n, sum;
    
    struct note {
    	string name;
    	char c, d;
    	int a, b, e, ans, id;
    } a[105];
    
    bool cmp(note x, note y) {
    	if (x.ans != y.ans) {
    		return x.ans > y.ans;
    	}
    	return x.id < y.id;
    }
    
    int main() {
    	cin >> n;
    	for (int i = 1; i <= n; i++) {
    		cin >> a[i].name >> a[i].a >> a[i].b >> a[i].c >> a[i].d >> a[i].e;
    		a[i].id = i;
    		if (a[i].a > 80 && a[i].e >= 1) {
    			a[i].ans += 8000;
    			sum += 8000;
    		}
    		if (a[i].a > 85 && a[i].b > 80) {
    			a[i].ans += 4000;
    			sum += 4000;
    		}
    		if (a[i].a > 90) {
    			a[i].ans += 2000;
    			sum += 2000;
    		}
    		if (a[i].a > 85 && a[i].d == 'Y') {
    			a[i].ans += 1000;
    			sum += 1000;
    		}
    		if (a[i].b > 80 && a[i].c == 'Y') {
    			a[i].ans += 850;
    			sum += 850;
    		}
    	}
    	sort(a + 1, a + n + 1, cmp);
    	cout << a[1].name << endl << a[1].ans << endl << sum;
    
    	return 0;
    }
    //4
    //YaoLin 87 82 Y N 0
    //ChenRuiyi 88 78 N Y 1
    //LiXin 92 88 N N 0
    //ZhangQin 83 87 Y N 1
    
    //ChenRuiyi
    //9000
    //28700
    

    Information

    ID
    485
    Time
    1000ms
    Memory
    125MiB
    Difficulty
    10
    Tags
    # Submissions
    4
    Accepted
    3
    Uploaded By