POJ 3664 Election Time

爲了圖省事不自己寫排序函數,就想着先用sort先排一次,然後剩下的K個就用bublle來排…沒想到竟然TLE,本着將懶人精神發揚到底的信念,我定義了兩個一模一樣的結構體,分別重載了兩個小於號然後用sort排序…儘管看起來有點蠢,但是還是過了……

這會突然想起來找最大值根本不需要排序,直接遍歷一遍就好,看來我還是太蠢惹…

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

#define maxn 50000

struct cows{
    int num;
    int ta;
    int tb;
};

bool operator < (cows a,cows b){
    return a.ta>b.ta;
}

struct cowss{
    int num;
    int ta;
    int tb;
};

bool operator < (cowss a,cowss b){
    return a.tb>b.tb;
}

int N,K;
cows cow[maxn]={0};
cowss coww[maxn]={0};

int main(){
    scanf("%d%d",&N,&K);
    for(int i=1;i<=N;++i){
        scanf("%d%d",&cow[i].ta,&cow[i].tb);
    }
    for(int i=1;i<=N;++i){
        cow[i].num = i;
    }

    sort(cow+1,cow+1+N);

    for(int i=1;i<=K;++i){
        coww[i].num = cow[i].num;
        coww[i].tb = cow[i].tb;
    }
    sort(coww+1,coww+1+K);

    printf("%d\n",coww[1].num);
    //system("pause");
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章