为什么运行出错(悬关)
  • 板块灌水区
  • 楼主WZWZWZWY
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/9/13 15:17
  • 上次更新2023/11/2 21:04:59
查看原帖
为什么运行出错(悬关)
704668
WZWZWZWY楼主2023/9/13 15:17

只用看为什么出错就行QAQ

#include <iostream>
#include <algorithm>
using namespace std;
int a[5005];
long long sum;

int wei(int x){
	int ans;
	if (x == 0) return 1;
	while(x){
		x /= 10;
		ans++;
	}
	return ans;
}

bool cmp(int a, int b){
	return a > b;
}
int main(){
	int n,m,k,r2;
	cin >> n >> m >> k;
	r2 = n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	sort(a+1,a+1+n,cmp);
	while(k--){
		int sheng = m;
		int l = 1, r = r2;
		while(sheng){
			int ansi = 0;
			l = 1;r = r2;
			while(l <= r){
				int mid = (l+r)>>1;
				if (wei(a[mid]) <= sheng){
					ansi = mid;
					r = mid - 1;
				}else {
					l = mid + 1;
				}
			//	cout << l << " " << r <<" " <<a[mid]<< "\n";
			}
			//cout << ansi << " " << a[ansi] << "\n\n";
			sheng -= wei(a[ansi]);
			sum += a[ansi];
			a[ansi] = 0;
			sort(a+1,a+1+r2,cmp);
			r2--;
			for (int i = 1; i <= r2; i++);
		}
	}
	cout << sum;
}

输入

5 2 1
1 2 3 4 5
2023/9/13 15:17
加载中...