首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

浙大PAT 7-07 PAT排行汇总

2013-09-17 
浙大PAT 7-07 PAT排名汇总九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11746

浙大PAT 7-07 PAT排名汇总

九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11746661

排序题,注意学号不能用long long 会坑

#include<iostream>#include<stdio.h>#include<string>#include<string.h>#include<algorithm>#include<map>#include<list>#include<set>#include<vector>#include<queue>#include<iomanip>#include<math.h>#define N 41000#define M 41000#define ll intusing namespace std;struct node{char num[20];ll gra,rank;ll belo,rank2;}str[N];bool cmp(node a,node b){if(a.gra==b.gra)return strcmp(a.num,b.num)<0;return a.gra>b.gra;}int main(){ll n,k,i,j,nn;while(~scanf("%d",&n)){i=0;for(nn=1;nn<=n;nn++){scanf("%d",&k);ll start=i;while(k--){scanf("%s %d",&str[i].num,&str[i].gra);str[i].belo=nn;i++;}ll End=i;sort(str+start,str+End,cmp);ll ranknum=0,ranktemp=0;for(j=start;j<End;j++)if(j!=start && str[j].gra==str[j-1].gra)ranktemp++,str[j].rank2=ranknum;else {ranknum+=ranktemp+1;str[j].rank2=ranknum;ranktemp=0;}}ll all=i;sort(str,str+all,cmp);ll ranknum=0,ranktemp=0;for(i=0;i<all;i++)if(i!=0 && str[i].gra==str[i-1].gra)ranktemp++,str[i].rank=ranknum;else {ranknum+=ranktemp+1;str[i].rank=ranknum;ranktemp=0;}printf("%d\n",all);for(j=0;j<all;j++)printf("%s %d %d %d\n",str[j].num,str[j].rank,str[j].belo,str[j].rank2);}return 0;}/*251234567890001 951234567890005 1001234567890003 951234567890002 771234567890004 8541234567890013 651234567890011 251234567890014 1001234567890012 85 629999999999999 18999999999999 121999999999999 17999999999999 112999999999999 113999999999999 115999999999999 016999999999999 34104000000000011 1004000000000008 904000000000005 1004000000000001 904000000000003 954000000000009 804000000000006 904000000000007 1004000000000002 904000000000004 9063000000000003 753000000000013 853000000000007 863000000000009 923000000000010 983000000000020 6022000000000002 982000000000003 9811000000000001 100*/


 

热点排行