我做错了什么??

P1478 陶陶摘苹果(升级版)

一个神奇的人 @ 2019-09-27 15:29:25

0分…


#include<bits/stdc++.h>
using namespace std;
int n,f,t;
void cxk(int &a[n],int &b[n])
{
    int q,k;
    for(int i=1;i<n;i++)
    {
        if(a[i]<=a[i-1])
        {
            q=a[i-1];
            k=b[i-1];
            a[i-1]=a[i];
            b[i-1]=b[i];
            a[i]=q;
            b[i]=k;
            k=0;
            q=0;
        }
    }
void jntm(int xi,int yi)
{
    if(f+t>=xi)
    {
        ans++;
        s=s-yi;
    }
}
int main()
{
    int s,ans=0;
    cin>>n>>s>>f>>t;
    int xi[n],yi[n];
    for(int i=0;i<n;i++)
    {
        cin>>xi[n];
        cin>>yi[n];
    }
    cxk(yi[n],xi[n]);
    for(int i=0;i<n;i++)
    {
        if(s<0)
            break;
        else
            jntm(xi[i],yi[i]);
    }
    cout<<ans;
    return 0;
}

by AK_黄铮_IMO @ 2019-09-27 15:32:54

@一个神奇的人 你这个本地测评都有问题;


by jxyzs @ 2019-09-27 15:46:29

@一个神奇的人 s不是全局变量,在jntm里用不了


by Pengsibo @ 2019-09-27 16:19:28

.


by Frainstak @ 2019-09-27 16:31:37

考点:自定义排序

#include<bits/stdc++.h>
using namespace std;
struct apple{
    int x;
    int y;
};
apple k[5000];
bool cmp(apple a,apple b){
    return a.y<b.y;
}
int main(){
    int n,s,a,b;
    cin>>n>>s>>a>>b;
    b+=a;
    for(int i=0;i<n;i++){
        cin>>k[i].x>>k[i].y;
    }
    for(int i=0;i<n;i++){
        if(k[i].x>b){
            k[i].y=101;
        }
    }
    sort(k,k+n,cmp);
    int ans=0;
    for(int i=0;i<n&&s-k[i].y>=0;i++){
        if(k[i].y!=101){
            ans++;
            s-=k[i].y;
        }
    }
    cout<<ans;
    return 0;
}

by 一个神奇的人 @ 2019-09-28 21:52:13

@jxyzs 谢了


by 一个神奇的人 @ 2019-09-28 22:01:41

@ProgrammerRaymond 感谢


|