浙大PAT 7-06 题解
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <queue>
#include <stack>
#define N 400
#define ll int
using namespace std;
struct node{
ll gold,all,pre,num;
double pa,pg;
ll r1,r2,r3,r4;
}p[N];
bool cmp1(node a,node b){return a.gold>b.gold;}
bool cmp2(node a,node b){return a.all>b.all;}
bool cmp3(node a,node b){return a.pa>b.pa;}
bool cmp5(node a,node b){return a.pg>b.pg;}
bool cmp4(node a,node b){return a.num<b.num;}
int main(){
ll n,m,i,j;
while(~scanf("%d%d",&n,&m)){
for(i=0;i<n;i++){
scanf("%d %d %d",&p[i].gold,&p[i].all,&p[i].pre);
p[i].num=i;
if(p[i].pre==0){p[i].pg=p[i].pa=1000;continue;}
if(p[i].all)
p[i].pa=(double)p[i].all/(double)p[i].pre;
else p[i].pg=0;
if(p[i].gold)
p[i].pg=(double)p[i].gold/(double)p[i].pre;
else p[i].pg=0;
}
sort(p,p+n,cmp1);
ll rank=0,ranktemp=0;
for(i=0;i<n;i++)
if(i!=0 && p[i].gold==p[i-1].gold)
p[i].r1=rank,ranktemp++;
else
{
rank+=ranktemp+1;
ranktemp=0;
p[i].r1=rank;
}
sort(p,p+n,cmp2);
rank=0,ranktemp=0;
for(i=0;i<n;i++)
if(i!=0 && p[i].all==p[i-1].all)
p[i].r2=rank,ranktemp++;
else
{
rank+=ranktemp+1;
ranktemp=0;
p[i].r2=rank;
}
sort(p,p+n,cmp5);
rank=0,ranktemp=0;
for(i=0;i<n;i++)
if(i!=0 && p[i].pg==p[i-1].pg)
p[i].r4=rank,ranktemp++;
else
{
rank+=ranktemp+1;
ranktemp=0;
p[i].r4=rank;
}
sort(p,p+n,cmp3);
rank=0,ranktemp=0;
for(i=0;i<n;i++)
if(i!=0 && p[i].pa==p[i-1].pa)
p[i].r3=rank,ranktemp++;
else
{
rank+=ranktemp+1;
ranktemp=0;
p[i].r3=rank;
}
sort(p,p+n,cmp4);
while(m--){
scanf("%d",&i);
ll a=N,b;
if(p[i].r1<a){a=p[i].r1;b=1;}
if(p[i].r2<a){a=p[i].r2;b=2;}
if(p[i].r4<a){a=p[i].r4;b=3;}
if(p[i].r3<a){a=p[i].r3;b=4;}
printf("%d:%d",a,b);
if(m)printf(" ");
else printf("\n");
}
}
return 0;
}
/*
4 4
51 100 1000
36 110 300
6 14 32
5 18 40
0 1 2 3
7 2
51 100 1000
36 110 300
6 14 32
5 18 40
23 73 142
19 47 61
16 41 82
4 6
6 6
15 45 50
45 90 500
50 100 1000
30 80 75
50 100 500
40 90 100
2 4 1 5 3 0
4 4
2 3 1
1 3 1
2 5 1
0 4 1
1 3 2 0
*/
浙大PAT 7-06 题解的更多相关文章
- 浙大pat 1035题解
1035. Password (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ...
- 浙大pat 1025题解
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
- 浙大pat 1011题解
With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...
- 浙大pat 1012题解
1012. The Best Rank (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To eval ...
- 浙大 pat 1003 题解
1003. Emergency (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...
- 浙大 pat 1038 题解
1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- 浙大 pat 1047题解
1047. Student List for Course (25) 时间限制 400 ms 内存限制 64000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Y ...
- 浙大pat 1054 题解
1054. The Dominant Color (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard Behind the scen ...
- 浙大pat 1059 题解
1059. Prime Factors (25) 时间限制 50 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 HE, Qinming Given ...
随机推荐
- 利用js制作异步验证ajax方法()
如何利用js写ajax异步验证.代码如下: window.onload = function(){ var name = document.getElementById('register-name- ...
- Mining 任务分类
1.预测任务: 根据其它属性的值预测特定属性的值. 2.描述性任务: 发现数据之间潜在的关联关系.
- DirectUI实现原理
一,概念 传统的Windows窗口程序对每一个控件都会创建一个句柄,而DUI技术奖所有控件都绘制在一个窗体上,这些控件的逻辑和绘图方式必须自己进行编写和封装,所以这些控件都是无句柄的. DUI技术的实 ...
- Ubuntu 12.04下安装ibus中文输入法
这是最完整的安装方法: ibu是一个框架,可以支持多种输入法,像是pinyin,五笔等. 1,安装ibus框架 终端输入以下命令: sudo apt-get install ibus ibus-clu ...
- kubuntu添加windows字体
1.选取字体 在/usr/share/fonts/truetype中新建一个目录,命名为ms,然后将Windows\fonts 目录下的tahoma.ttf.tahomabd.ttf(Tahoma的粗 ...
- python 访问器@property的使用方法
@property 可以将python定义的函数"当做"属性访问,从而提供更加友好访问方式,但是有时候setter/getter也是需要的 假设定义了一个类Cls,该类必须继承自o ...
- iOS提交AppStore后申请加急审核(转)
是的,由于最近知名的Xcode后门事件,我们的应用也被感染了.o(╯□╰)o 上周四从看到喵神的微博得知第三方Xcode可能被感染后马上查了下,自己用的却是被感染了,于是马上到MAS下载了最新的Xco ...
- POJ 3318 - Matrix Multiplication 第一次用随机化解决问题...
随机化还是很厉害的...印象最深的是以前手写快排~~一般加个随机化会使耗时不受输入数据的..时间更加稳定 这个题是人品题了...开始交了好多遍都过不了..多交几次终于过了... Program: #i ...
- Mac 任何选项没有了怎么办?
1.如果需要恢复允许"任何来源"的选项,即关闭 Gatekeeper,请打开终端 2.然后使用 spctl 命令: sudo spctl --master-disable
- 简单的CSS网页布局--一二列布局
1.一列布局 (一)一列自适应 自适应浏览器,随着浏览器的拉伸而变化,一般宽度采用百分比的写法,很简<!DOCTYPE html> <html> <head lang=& ...