我不理解?,为什么就第5个点花费时间要1.2秒,这个思路和其他人差不多呀
查看原帖
我不理解?,为什么就第5个点花费时间要1.2秒,这个思路和其他人差不多呀
460554
Horse_in_Russia楼主2022/4/10 13:10
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>


using namespace std;
typedef struct{
    long long int num_max,num_min;
    long long int sum;
}card;
card kapianku[500010];
int n;          //总共有n张卡片

long long int answer=0;
bool cmp(card a,card b){
    return a.sum>b.sum;
}

int main(){
    scanf("%d",&n);
    long long int tmpa,tmpb;
    for(int k=0;k<n;k++){
        scanf("%lld %lld",&tmpa,&tmpb);
        kapianku[k].num_max=max(tmpa,tmpb);
        kapianku[k].num_min=min(tmpa,tmpb);
        kapianku[k].sum=tmpa+tmpb;        
    }
    sort(kapianku,kapianku+n,cmp);
if(n%2==0){
    for(int i=0;i<n/2;i++){
        answer=answer-kapianku[i].num_max;
    }
    for(int i=n/2;i<n;i++){
        answer=answer+kapianku[i].num_min;
    }
}
else{
    for(int i=0;i<=n/2;i++){
        answer=answer-kapianku[i].num_max;
    }
    for(int i=(n/2)+1;i<n;i++){
        answer=answer+kapianku[i].num_min;
    }
}
    printf("%lld",answer);
    system("pause");
    return 0;
}
2022/4/10 13:10
加载中...