首页 > 编程知识 正文

保肝护肝最好的药排名,就业前景好的专业排名

时间:2023-05-06 19:00:10 阅读:257888 作者:4937

D e s c r i p t i o n Description Description

有n个人考试
A [ i ] A[i] A[i]为第 i i i个人的成绩
B [ i ] B[i] B[i]为第 i i i个人的年龄
现在每一个人想知道
比他成绩好
且年龄比自己小的人的数量(C[i])

I n p u t Input Input

第一行,一个数 n n n
第2~n+1行,每行两个数,A[i]、B[i]

O u t p u t Output Output

按从大到小,输出C[i]

S a m p l e I n p u t Sample Input SampleInput 5300 5200 6350 4400 6250 5 S a m p l e O u t p u t Sample Output SampleOutput 00113 思路

先把A[i]排一遍(从大到小)
如果相等,则用B[i]排(从小到大)
最后枚举

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct whw{int Num,Age;}A[50250];int T[50250];int Ans,n;bool Nm(whw i,whw j){return (i.Num>j.Num || (i.Num==j.Num && i.Age<j.Age));}//见上int main(){freopen("paiming.in","r",stdin);freopen("paiming.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d%d",&A[i].Num,&A[i].Age);sort(A+1,A+n+1,Nm);//排一遍printf("0n");for(int i=2;i<=n;++i){for(int j=1;j<i;++j)if(A[i].Age>A[j].Age)T[i]++;printf("%dn",T[i]);}fclose(stdin);fclose(stdout);return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。