求解第四个为什么过不了

P1478 陶陶摘苹果(升级版)

godperkz @ 2018-08-14 17:46:07

include<iostream>

include<algorithm>

using namespace std; long int k[5020][2]; int main() { int n,s,a,b,ans=0,sum=0; cin>>n>>s; cin>>a>>b; int t=a+b; for(int i=1;i<=n;i++) cin>>k[i][0]>>k[i][1]; for (int i=n;i>=2;i--)
for (int j=1;j<=n-1;j++) { if(k[j][1]>k[j+1][1]) { swap(k[j][1],k[j+1][1]); swap(k[j][0],k[j+1][0]); } } for(int i=1;i<=n;i++) cout<<k[i][0]<<" "<<k[i][1]<<" "; int i=1; while(ans<=s&&i<=n) {

    if(k[i][0]<=t)
    {
        ans+=k[i][1];
        sum++;
    }
    i++;
}
cout<<sum<<endl;

}


by godperkz @ 2018-08-15 12:40:18

@花落丶宸星

include<iostream>

#include<algorithm>
using namespace std; 
long int k[5020][2]; 
int main() { 
int n,s,a,b,ans=0,sum=0; 
cin>>n>>s; 
cin>>a>>b; 
int t=a+b; 
for(int i=1;i<=n;i++) 
cin>>k[i][0]>>k[i][1]; 
for (int i=n;i>=2;i--)
for (int j=1;j<=n-1;j++) 
{ if(k[j][1]>k[j+1][1]) 
    { swap(k[j][1],k[j+1]     [1]);          swap(k[j]     [0],k[j+1][0]); } 
} 
int i=1; 
while(ans<=s&&i<=n) {
if(k[i][0]<=t)
{
    ans+=k[i][1];
    sum++;
}
i++;
}
cout<<sum<<endl;
}

by godperkz @ 2018-08-15 12:41:45

@花落丶宸星 中间那行输入代码是我源代码里调试用的,忘了去掉了。我的思路就是先对数据进行快排,然后再计数已使用体力值,并且每个符合条件的苹果sum++。 但我的代码第四个数据总是过不了


by 花落丶宸星 @ 2018-08-15 12:43:45

我看过数据了。。。

0 0
0 0

by 花落丶宸星 @ 2018-08-15 12:43:49

@godperkz


by 花落丶宸星 @ 2018-08-15 12:44:47

我还是比较喜欢用结构体。。二维数组不太爱用除了打Pascal的时候


by 花落丶宸星 @ 2018-08-15 12:46:25

@godperkz 我也没看到你用sort啊。。。


by godperkz @ 2018-08-15 14:59:33

@花落丶宸星 不是很习惯用结构体 而且为什么我0 0 0 0过不了 这真令人头大


by 花落丶宸星 @ 2018-08-15 15:01:03

你可以试试我发给你的代码


by 花落丶宸星 @ 2018-08-15 15:01:24

@godperkz 我的代码0 0 0 0过了


by 1tvvdsg @ 2018-08-19 15:39:02

哈哈哈哈 因为 0 0 0 0 的话

你是错的

我也是这样的

你可以选择加一个特判


上一页 |