time limit: 1000ms memory limit: 65536kb
submit statistic
problem description
acm——大學中四大競賽之首——是極具挑戰性的大學生競賽形式。在一場acm比賽中,乙個參賽隊伍由三人組合而成,在最短的時間內做出盡可能多的題目而且要盡量少提交錯誤**,這樣才能得到更高的排名。現在讓我們模擬一次不正規的acm比賽,假設在比賽開始後30分鐘(這時已經有不少同學提交了**,在rating中已經出現),到比賽結束前,又有新的同學提交(在rating中出現),同時rating在不斷變化著,還有一些同學因為一些原因中途退出比賽(這時rating中自動刪除,當然在正式比賽中不會有這種情況)。最後終於比賽結束啦,看看rating,都有誰能拿到獎牌呢?
input
第一行乙個整數n(n<=1000),代表開始比賽後30分鐘已經有n個人提交了**。從第二行到第n+1行每行包括名字name(小於20個字元),分數p(0<=p<=10000),同時行數代表目前排名情況,第二行的排名第一,第三行排名第二,依次類推。
從第n+2行起,每行有乙個字元,是a,q,c,s,o中的乙個:
a代表新加進rating中一名同學,緊隨其後是名字name(小於20個字元),分數p(0<=p<=10000);
q代表有一名同學退出了,接著是他的名字name(小於20個字元);
c代表有乙個人的分數發生的改變,接著是此人的名字name,他的分數加多少(分數只會增加不會減少);
s代表一次顯示此時rating的請求,這時輸出所有在rating中的同學名字及他們的分數。
o代表比賽結束。
output
對每次請求,輸出此時rating中的所有同學名字和對應分數,在比賽結束時輸出金牌獲得者(一名),銀牌獲得者(兩名),銅牌獲得者(三名)(測試資料保證此時有至少6名同學在rating上)。注意:有同學新增到rating中或者分數改變後,在rating中有和這名同學有相同的分數,那麼這名同學排在最後乙個與他有相同分數同學的後面。
example input
7cze 90
qch 87
zff 70
shangcf 66
zhaohq 50
zhrq 46
yah 20
a pc 56
q zff
c qch 4
sa von 66
oexample output
qch 91
cze 90
shangcf 66
pc 56
zhaohq 50
zhrq 46
yah 20
#1 : qch
#2 : cze shangcf von
#3 : pc zhaohq zhrq
此題可以將底面**中的排序部分寫成乙個函式的形式;
#include
#include
#include
struct node ;
struct node* creat(int n);
void delet (struct node *head, char t, int n);
void add(struct node *head, char t,int n);
void join (struct node *head, char t, int n);
void print(struct node *head);
void rank(struct node *head);
int main()
else if(c == 'q')
else if(c == 'c')
else if(c == 's')
else if(c == 'o')
} return 0; }
struct node* creat(int n)
return (head); };
void delet (struct node *head, char t, int n)
else
} }
} void add(struct node*head, char t,int n)
p = p -> next; }
}void join (struct node*head, char t, int n)
q = q -> next; }
p = p -> next; }
}void print(struct node *head)
q = q -> next; }
p = p -> next; }
p = head -> next;
while(p)
} void rank(struct node *head)
q = q -> next; }
p = p -> next; }
p = head -> next;
printf("#1 :");
while(p)
printf("\n");
printf("#2 :");
int cnt2 = 0;
p=head->next;
while(p)
} printf("\n");
printf("#3 :");
int cnt3 = 0;
p=head->next;
while(p)
} }
金牌 銀牌 銅牌
金牌 銀牌 銅牌 time limit 1000ms memory limit 65536k acm 大學中四大競賽之首 是極具挑戰性的大學生競賽形式。在一場acm比賽中,乙個參賽隊伍由三人組合而成,在最短的時間內做出盡可能多的題目而且要盡量少提交錯誤 這樣才能得到更高的排名。現在讓我們模擬一次不正...
金牌 銀牌 銅牌
time limit 1000 ms memory limit 65536 kib problem description acm 大學中四大競賽之首 是極具挑戰性的大學生競賽形式。在一場acm比賽中,乙個參賽隊伍由三人組合而成,在最短的時間內做出盡可能多的題目而且要盡量少提交錯誤 這樣才能得到更高...
金牌 銀牌 銅牌
time limit 1000 ms memory limit 65536 kib submit statistic problem description acm 大學中四大競賽之首 是極具挑戰性的大學生競賽形式。在一場acm比賽中,乙個參賽隊伍由三人組合而成,在最短的時間內做出盡可能多的題目而且...