结构体编译不过是为什么

P1478 陶陶摘苹果(升级版)

王宏宇11 @ 2019-02-23 18:23:40

一枚真实的萌新,不会用结构体,代码结构体编译不过,不知道为什么,望大佬们看看

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
struct  node
{int xi;
 int yi;//力气 
};
node a[5005];
int main()
{int n,s,h,b;
int sum=0;
cin>>n>>s;
cin>>h>>b;
for(int i=1;i<=n;i++)
   cin>>a[i].xi>>a[i].yi;
sort(a+1,a+1+n);//排序 
while(s>=0)
   {int i=1;
    if(h+b>=a[i].xi)
      {sum++;
       s=s-a[i].yi;//如果可以就减去力气 
      } 
    i++;
    if(i>n)//力气多了退出 
     break;
    }
cout<<sum;
return 0;
} 

by Priori_Incantatem @ 2019-02-23 19:34:19

@王宏宇11 是要交换成 x.yi<y.yi;


by Priori_Incantatem @ 2019-02-23 19:35:04

如果 x.yi>=y.yi;就交换


by csdfret @ 2019-02-23 19:35:11

你数组越界了啊。。。


by 王宏宇11 @ 2019-02-23 19:36:30

@_Wolverine 我刚刚百度了一下,sort函数中如果cmp函数的返回值为1就交换,我想我大概清楚了,谢谢大佬出手相助


by csdfret @ 2019-02-23 19:36:37

i的定义要放循环外。。


by csdfret @ 2019-02-23 19:36:57

每次i都是1啊


by 王宏宇11 @ 2019-02-23 19:38:40

@   啊,对,忽略了这个,真是抱歉QwQ、谢谢大佬


by 王宏宇11 @ 2019-02-23 19:40:16

@   emmmm,改过之后我的输出结果比样例多1.....


by 王宏宇11 @ 2019-02-23 19:43:48

@   神奇的是我擅自把sum减去了1居然给我AC了....莫非我哪里多算了一个


by 王宏宇11 @ 2019-02-23 19:44:42

水平太低QwQ,卑微


上一页 | 下一页