2015-06-14 17:13:05

传送门

总结:比赛的时候有点逗比... C wa了一发后弃疗了,过掉了D,最后D因为一个巨坑的数据FST掉了... QAQ

 

A题:简单排序

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;

#define getmid(l,r) ((l) + ((r) - (l)) / 2)
#define MP(a,b) make_pair(a,b)
#define PB(a) push_back(a)

typedef long long ll;
typedef pair<int,int> pii;
const double eps = 1e-8;
const int INF = (1 << 30) - 1;

int n;

struct node{
    int a,id,pos;
}p[2010];

bool cmp(node a,node b){
    return a.a > b.a;
}

bool cmp_id(node a,node b){
    return a.id < b.id;
}

int main(){
    scanf("%d",&n);
    for(int i = 1; i <= n; ++i){
        scanf("%d",&p[i].a);
        p[i].id = i;
    }
    sort(p + 1,p + n + 1,cmp);
    int P = 0;
    p[1].pos = 1;
    for(int i = 2; i <= n; ++i){
        if(p[i].a == p[i - 1].a){
            p[i].pos = p[i - 1].pos;
        }
        else p[i].pos = i;
    }
    sort(p + 1,p + n + 1,cmp_id);
    for(int i = 1; i <= n;  ++i){
        printf("%d ",p[i].pos);
    }
    puts("");
    return 0;
}
View Code

相关文章:

  • 2021-06-13
  • 2021-11-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-17
猜你喜欢
  • 2021-07-01
  • 2022-01-01
  • 2021-12-29
  • 2022-02-09
  • 2021-05-30
  • 2021-06-05
  • 2021-08-12
相关资源
相似解决方案