生活随笔
收集整理的這篇文章主要介紹了
【PAT乙级】1085 PAT单位排行 (25 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目地址
#include<bits/stdc++.h>
using namespace std
;
int n
,score
;
string id
,name
;
struct node{int a
,b
,t
,cnt
,sum
; string name
;}temp
;
map
<string
,node
>mp
;
vector
<node
>ve
;
bool cmp(node a
,node b
)
{if(a
.sum
==b
.sum
){if(a
.cnt
==b
.cnt
) return a
.name
<b
.name
;return a
.cnt
<b
.cnt
;}return a
.sum
>b
.sum
;
}
int main(void)
{cin
>>n
;while(n
--){cin
>>id
>>score
>>name
;for(int i
=0;i
<name
.size();i
++) name
[i
]=tolower(name
[i
]);if(id
[0]=='A') mp
[name
].a
+=score
;else if(id
[0]=='B') mp
[name
].b
+=score
;else if(id
[0]=='T') mp
[name
].t
+=score
;mp
[name
].cnt
++;}for(auto i
=mp
.begin();i
!=mp
.end();i
++){i
->second
.sum
=i
->second
.a
+i
->second
.b
/1.5+i
->second
.t
*1.5;i
->second
.name
=i
->first
;ve
.push_back(i
->second
);}sort(ve
.begin(),ve
.end(),cmp
);cout
<<ve
.size()<<endl
; int k
=1;for(int i
=0;i
<ve
.size();i
++){printf("%d %s %d %d",k
,ve
[i
].name
.c_str(),ve
[i
].sum
,ve
[i
].cnt
);if(i
+1<ve
.size()&&ve
[i
].sum
!=ve
[i
+1].sum
) k
=i
+2;if(i
!=ve
.size()-1) cout
<<endl
; }return 0;
}
總結
以上是生活随笔為你收集整理的【PAT乙级】1085 PAT单位排行 (25 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。