1. 程式人生 > >HDU 1236 排名(水~)

HDU 1236 排名(水~)

Description
今天的上機考試雖然有實時的Ranklist,但上面的排名只是根據完成的題數排序,沒有考慮每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的考生,並將他們的成績按降序列印
Input
測試輸入包含若干場考試的資訊。每場考試資訊的第1行給出考生人數N ( 0 < N < 1000 )、考題數M ( 0 < M < = 10 )、分數線(正整數)G;第2行排序給出第1題至第M題的正整數分值;以下N行,每行給出一名考生的准考證號(長度不超過20的字串)、該生解決的題目總數m、以及這m道題的題號(題目號由1到M)。當讀入的考生人數為0時,輸入結束,該場考試不予處理
Output


對每場考試,首先在第1行輸出不低於分數線的考生人數n,隨後n行按分數從高到低輸出上線考生的考號與分數,其間用一空格分隔。若有多名考生分數相同,則按他們考號升序輸
Sample Input
4 5 25
10 10 12 13 15
CS004 3 5 1 3
CS003 5 2 4 1 3 5
CS002 2 1 2
CS001 3 2 3 5
1 2 40
10 30
CS001 1 2
2 3 20
10 10 10
CS000000000000000001 0
CS000000000000000002 2 1 2
0
Sample Output
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20
Solution
簡單題,統計每名學生得分,之後結構體排序即可
Code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
    char name[111];
    int num;
}stu[1111];
int cmp(node a,node b)
{
    if(a.num==b.num)//分數相同按學號升序排 
        return strcmp(a.name,b.name)<0;
    return a.num>b.num;//否則按分數降序排 
} int main() { int n,m,g; while(scanf("%d",&n),n) { scanf("%d%d",&m,&g); int a[111]; for(int i=1;i<=m;i++) scanf("%d",&a[i]); int ans=0; for(int i=0;i<n;i++) { int q; scanf("%s %d",stu[i].name,&q); stu[i].num=0;//初始化 for(int j=0;j<q;j++) { int temp; scanf("%d",&temp); stu[i].num+=a[temp];//統計每名學生的得分 } if(stu[i].num>=g)//統計高於平均分的學生人數 ans++; } sort(stu,stu+n,cmp); printf("%d\n",ans); for(int i=0;i<ans;i++) printf("%s %d\n",stu[i].name,stu[i].num); } return 0; }

相關推薦

HDU 1236 排名~

Description 今天的上機考試雖然有實時的Ranklist,但上面的排名只是根據完成的題數排序,沒有考慮每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的考生,並將他們的成績按降序列印 Input 測試輸入包含若干場考

hdu 1236 排名 字串處理

排名 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi

HDU 2039 三角形~

Description 給定三條邊,請你判斷一下能不能組成一個三角形 Input 輸入資料第一行包含一個數M,接下有M行,每行一個例項,包含三個正數A,B,C,其中A,B,C <1000

hdu 4493 Tutor題+讀題

Tutor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 4780    Accepted Submissio

HDU 1177."Accepted today?"【結構體排序】【1月6】

"Accepted today?" Problem Description Do you remember a sentence "Accepted today?" Yes, the sentence is mentioned frequently in lcy's co

hdu 2043 密碼

網上流傳一句話:"常在網上飄啊,哪能不挨刀啊~"。其實要想能安安心心地上網其實也不難,學點安全知識就可以。 首先,我們就要設定一個安全的密碼。那什麼樣的密碼才叫安全的呢?一般來說一個比較安全的密碼至少應該滿足下面兩個條件: (1).密碼長度大於等於8,且不要超過16。 (2).密碼中的字元應該來自下面“字

HDU 2035 人見人愛A^B~

Description 求A^B的最後三位數表示的整數。 Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=

hdu 2093 考試排名sscanf

模擬題。 直接從教程里拉解析。 因為表格裡的資料格式不統一。有時候有"()",有時候又沒有。而它也不會給我們提示。 這種情況下,就只能它它們統一看作字串來處理了。現在就請出我們的主角sscanf()! sscanf 語法: #include int sscanf( con

HDU 4288-Coder模擬

!= lease wrap write sca panel return img his Coder Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O

HDU 5386 Cover模擬

pad ger href for mem tracking pla cep tip Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe

[luoguP1097] 統計數字

ostream nbsp org urn tchar return blog print main 傳送門 這麽水的題,也只有提高組第一題了吧 代碼 #include <cstdio> #include <iostream>

hdu2410

問號 oid scanf bool space 一個數 tmp pan ios 題意 如果兩個數字除了帶問號的位以外都相同,我們稱這兩個數可以相互匹配 給你兩個數,其中第一個數字裏有一些問號,問有多少個大於第二個數的數字可以和第一個數字匹配 一開始懶得讀題,到網上搜題意,結

HDU 5073 Galaxy 數學

ext erro include lar 分享 suppose eat real imu Galaxy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)

HDU - 5073 Galaxy數學

turn -a min print mes tps div 完成 return 題目 題意:n個點,運行移動k個點到任何位置,允許多個點在同一位置上。求移動k個點後,所有點到整體中心的距離的平方和最小。 分析:這題題目真的有點迷。。。一開始看不懂。得知最後是選取一個中心

HDU - 1358 - Period KMP

tween tex spa pre period return rom ems align Period Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java

第六場 hdu 6097 Mindis 幾何

c++ turn ria log mil margin p s rem scanf http://acm.hdu.edu.cn/showproblem.php?pid=6097 題目大意:有個圓,圓內有兩個點P,Q,已知PO=QO,求圓上一點D,使得PD+QD最小

2017ICPC/廣西邀請賽1005HDU6186

clu pac for mes view sci n-n code algorithm CS Course Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

HDU 4644 BWT KMP

nds src 進行 esp line def cep oid amp BWT Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submiss

hdu 1236 排名

給定 tle iss spa ron align otto ranklist 將他 排名 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub

hdu 5037 Frog貪心

2個 spa ble log pri scan string 需要 tar 題目鏈接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5037 題解:為了讓放的石頭有意義肯定是沒l+1的距離放2個也就是說假設現在位置為