0分求调,写了思路,样例输出是916212631
查看原帖
0分求调,写了思路,样例输出是916212631
1200551
yuan2795楼主2024/10/17 16:01
#include <bits/stdc++.h>
using namespace std;
int w,n,cnt;
int p[30010];
int main()
{
	
	cin>>w>>n;
	cnt=0;
	for(int i=1;i<=n;i++)
	{
		cin>>p[i];
		
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=n;j>i;j--)
		{
			//1.全满足
          		//2.i取了
          		//3.j取了
          		//4.i,j取了
          		//5.超范围w了
			if(p[i]+p[j]<=w&&p[i]&&p[j])
			{
				cnt++;
				p[i]=0;
				p[j]=0;
			}
			else if(p[i]==0&&p[j]!=0)
			{
				i++;
			
			}
			else if(p[i]!=0&&p[j]==0)
			{
				j--;
			}
			else if(p[i]==0&&p[j]==0)	
			{
			
				i++;
				j--;
			
			}
			else
			{
				j--;
			}
		}
		for(int i=1;i<=n;i++)
		{
			if(p[i])
			{
				cnt++;
				//统计还没有变0(即还没有被分组的量),使它单独成组
			}
		}
		cout<<cnt;
	}
	return 0;
}
2024/10/17 16:01
加载中...