浙大PAT 1062题 1062. Talent and Virtue

2024-02-26 22:08
文章标签 浙大 pat 1062 talent virtue

本文主要是介绍浙大PAT 1062题 1062. Talent and Virtue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Person{
char id[10];
int virtue;
int talent;
}person;
//数组较大,开在main函数里面会出错; 
person ps[100005];
person p1[100005];
person p2[100005];
person p3[100005];
person p4[100005];
int cmp(const void *atmp,const void *btmp){
person *a=(person *)atmp;  
person *b=(person *)btmp;  
if(a->virtue+a->talent!=b->virtue+b->talent){  
return  a->virtue+a->talent<b->virtue+b->talent;
}  
else if(a->virtue!=b->virtue){  
return a->virtue<b->virtue;  
}  
else{  
return strcmp(a->id,b->id); 
}  
return 0;  
}  
int main(){
int i,j;
int n,l,h;
int cnt1,cnt2,cnt3,cnt4;
scanf("%d %d %d",&n,&l,&h);
cnt1=cnt2=cnt3=cnt4=0;
for(i=0;i<n;i++){
scanf("%s %d %d",&ps[i].id,&ps[i].virtue,&ps[i].talent);
if(ps[i].virtue<l||ps[i].talent<l){
continue;                              
}
else if(ps[i].virtue>=h&&ps[i].talent>=h){
p1[cnt1]=ps[i];
cnt1++;                           
}
else if(ps[i].virtue>=h&&ps[i].talent<h){
p2[cnt2]=ps[i];
cnt2++;                           
}
else if(ps[i].virtue<h&&ps[i].talent<h&&ps[i].virtue>=ps[i].talent){
p3[cnt3]=ps[i];
cnt3++;                           
}
else {
p4[cnt4]=ps[i];
cnt4++;                           
}
}
qsort(p1,cnt1,sizeof(person),cmp);
qsort(p2,cnt2,sizeof(person),cmp);
qsort(p3,cnt3,sizeof(person),cmp);
qsort(p4,cnt4,sizeof(person),cmp);
printf("%d\n",cnt1+cnt2+cnt3+cnt4);
for(i=0;i<cnt1;i++){
printf("%s %d %d\n",p1[i].id,p1[i].virtue,p1[i].talent);  
}
for(i=0;i<cnt2;i++){
printf("%s %d %d\n",p2[i].id,p2[i].virtue,p2[i].talent);  
}
for(i=0;i<cnt3;i++){
printf("%s %d %d\n",p3[i].id,p3[i].virtue,p3[i].talent);  
}
for(i=0;i<cnt4;i++){
printf("%s %d %d\n",p4[i].id,p4[i].virtue,p4[i].talent);  
}
system("pause");
return 0;
}

这篇关于浙大PAT 1062题 1062. Talent and Virtue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/750306

相关文章

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

浙大数据结构:04-树7 二叉搜索树的操作集

这道题答案都在PPT上,所以先学会再写的话并不难。 1、BinTree Insert( BinTree BST, ElementType X ) 递归实现,小就进左子树,大就进右子树。 为空就新建结点插入。 BinTree Insert( BinTree BST, ElementType X ){if(!BST){BST=(BinTree)malloc(sizeof(struct TNo

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

浙大数据结构——03-树1 树的同构

这道题我依然采用STL库的map,从而大幅减少了代码量 简单说一下思路,两棵树是否同构,只需比较俩树字母相同的结点是否同构,即是否左==左,右==右或者左==右,右==左。 1、条件准备 atree和btree是存两个数结点字母,第几个就存输入的第几个结点的字母。 map通过结点的字母作为键,从而找到两个子节点的信息 都要用char类型 #include <iostream>#inc

浙大数据结构:堆栈和队列的定义与操作

堆栈: 顺序存储: #include<stdio.h>#include<stdlib.h>typedef int ElementType ;typedef int position ;#define MAXSIZE 100#define ERROR -1struct SNode {ElementType * Data ;position top;int Maxsize;};

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

SpringDataJpa Error SQL Error: 1062, SQLState: 23000

SQL Error: 1062, SQLState: 23000   原因:报这个错是因为插了2条一样的数据 注意:PRIMARY KEY和唯一索引。

浙大数据结构:01-复杂度2 Maximum Subsequence Sum

数据结构MOOC PTA习题 01-复杂度2 Maximum Subsequence Sum #include <iostream>using namespace std;const int M = 100005;int a[M];int main(){int k;cin >> k;int f = 1;for (int i = 0; i < k; i++){cin >> a[i

POJ训练计划1062_昂贵的聘礼(最短路)

昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 35560 Accepted: 10171 Description 年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说