没想到浙大会出来这么不严谨的题,数据量是多少都没给,遇到这种情况给个十万应付一下就好了。
整体思路没什么问题,就是对输入的数据中拿出部分分别对他们排序,然后再遍历找出名次,不要怕麻烦就好。1A。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <map>
#include <cmath>
#include <climits>
using namespace std;
const int MAXN = 100005;
const int INF = INT_MAX;
struct Guojia{
int goldnum;
int medalnum;
int peoplenum;
double goldpro;
double medalpro;
};
Guojia guojia[MAXN], current[MAXN], example[MAXN], ans1[MAXN], ans2[MAXN], ans3[MAXN], ans4[MAXN];
bool cmp1(Guojia x, Guojia y){
return x.goldnum > y.goldnum;
}
bool cmp2(Guojia x, Guojia y){
return x.medalnum > y.medalnum;
}
bool cmp3(Guojia x, Guojia y){
return x.goldpro > y.goldpro;
}
bool cmp4(Guojia x, Guojia y){
return x.medalpro > y.medalpro;
}
int main(){
// freopen("in.txt", "r", stdin);
int N, M, pos;
wh