求助,一直过不了
查看原帖
求助,一直过不了
912985
1chenjiale楼主2023/7/12 11:52
#include <stdio.h>
struct yao{
    long long day,yyao;
}yao[300010];
void quicky(long long l,long long r)
{
    if(l>=r)
        return;
    long long key=yao[l].day;
    long long key1=yao[l].yyao;
    long long i=l,j=r;
    long long hole=l;
    while(i<j)
    {
        while(i<j&&yao[j].day>=key)
            j--;
        yao[hole].day=yao[j].day;
        yao[hole].yyao=yao[j].yyao;
        hole=j;
        while(i<j&&yao[i].day<=key)
            i++;
        yao[hole].day=yao[i].day;
        yao[hole].yyao=yao[i].yyao;
        hole=i;
    }
    yao[l].day=yao[i].day;
    yao[i].day=key;
    yao[l].yyao=yao[i].yyao;
    yao[i].yyao=key1;
    quicky(l, i-1);
    quicky(i+1, r);
    return;
}

int main(void)
{
    int n;
    long long k;
    long long yyao=0,tian=0;
    scanf("%d %lld",&n,&k);
    for(int i=1;i<=n;i++)
    {
        scanf("%lld %lld",&yao[i].day,&yao[i].yyao);
        yyao+=yao[i].yyao;
    }
    quicky(1, n);
    if(yyao<=k)
        printf("1\n");
    else
    {
        for(int i=1;i<=n;i++)
        {
            //        printf("%lld\n",yyao);
            yyao-=yao[i].yyao;
            if(yyao<=k)
            {
                tian=yao[i].day+1;
                break;
            }
        }
        printf("%lld\n",tian);
    }
    return 0;
}

2023/7/12 11:52
加载中...