U415969细节错误
  • 板块学术版
  • 楼主liaoxuan
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/5/26 14:59
  • 上次更新2024/5/26 16:49:39
查看原帖
U415969细节错误
1294608
liaoxuan楼主2024/5/26 14:59

U415969这道题蒟蒻我样例过了,但无法AC,还请各位大神看看。
蒟蒻的代码:

#include <bits/stdc++.h>
using namespace std;

int n,i,j,ans,sum,k,m,y;

int M[400008];


bool cmp(int x,int y)
{
	return x>y;
}

int main ()
{

	cin>>n>>y>>m;
	
	sum=y-n;//与目标的差 
	
	for(i=1;i<=m;++i)
	cin>>M[i];
	
	sort(M+1,M+n+1,cmp);//排列,从大到小 
	
	ans=1;//至少一次 
	for(i=1;i<=sum;++i)
	{
		if(n<y)
		{
			if(M[i]<=y)//不能超限 
			{
				n=n+M[i]-1;
				ans++;
			}
		}
		else
		break;
	}
	
	
	cout<<ans;
	
	
	return 0;
 } 

某“神仙”代码:


#include <iostream>
#include <vector>
using namespace std; 
int main() {
   int n, y, m;
   std::cin >> n >> y >> m;

   std::vector<int> M(m);
   for (int i = 0; i < m; ++i) {
       std::cin >> M[i];
   }

   int remaining_apples = y - n;
   int used_bars = 0;

   for (const auto& bar_effect : M) {
       if (bar_effect > 1 && remaining_apples >= bar_effect - 1) {
           remaining_apples -= (bar_effect - 1);
           used_bars++;
       }
   }

   std::cout << used_bars << std::endl;

   return 0;
}

火速请求指点!!!

2024/5/26 14:59
加载中...