在我的vs上可以跑,但是在洛谷上面通过不了,大佬们帮我看看
#include<iostream>
#include<cmath>
using namespace std;
void Quicksort(int price[], int left, int right)
{
if (left < right)
{
int key, keypoint;
int i = left, j = right;
key = price[left];
while (i<j)
{
while (i<j && price[j]>key)
j--;
if (i < j)
price[i++] = price[j];
while (i<j && price[i]<=key)
i++;
if (i < j)
price[j--] = price[i];
}
price[i] = key;
keypoint = i;
Quicksort(price, left, keypoint - 1);
Quicksort(price, keypoint + 1, right);
}
}
int main()
{
int topnum,giftnum;
int lp, rp,groupnum;
cin >> topnum >> giftnum;
int price[30000];
for (int i =0 ; i < giftnum; i++)
{
cin >>price[i];
}
Quicksort(price, 0, giftnum-1);
rp = giftnum - 1;
for (lp= 0; lp < giftnum; lp++)
{
while (rp > lp)
{
if (price[lp] + price[rp] <= topnum)
{
price[rp] = -1;
rp--;
break;
}
else
{
rp--;
continue;
}
}
if (lp >= rp)
break;
}
groupnum =giftnum - lp;
cout << groupnum;
return 0;
}