4002: 天梯选拔赛-D(CUMTB)

it2024-03-31  48

http://10.18.21.138/problem.php?id=4002

坤坤从超市买来一些物品。他想要把买来的物品根据价格进行分组,但每组最多只能包括两件物品,并且每组物品的价格之和不能超过一个给定的整数。他还希望分组的数目最少。 你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

之前写的太复杂了,贴一个写的简单的

#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() {     int price,n;     int a[40001];     cin>>price>>n;     for(int i=0;i<n;i++)         cin>>a[i];         sort(a,a+n);         int count1=0;         for(int i=0,j=n-1;i<=j;)         {             if(a[i]+a[j]>price)             {                 count1++;                 j--;             }             else             {                 i++;                 j--;                 count1++;             }

        }         cout<<count1<<endl; }  

最新回复(0)