24pts, 求dalao帮忙看看哪里出了问题
  • 板块P9228 原神
  • 楼主looloa
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/5/8 17:27
  • 上次更新2023/10/23 16:20:39
查看原帖
24pts, 求dalao帮忙看看哪里出了问题
924484
looloa楼主2023/5/8 17:27

这是24分的代码。

#include <iostream>
 #include <algorithm>


using namespace std;


// variable
int fire[1000005];
int ice[1000005];
int fire_num, ice_num, k;
long long ans;

// function
bool big_to_small(int a, int b){
	return a>b;
}

int main(){
	cin >> fire_num >> ice_num >> k;
	int min_num = min(fire_num, ice_num);
	
	for(int i=1; i!=fire_num+1; i++) cin >> fire[i];
	for(int i=1; i!=ice_num+1; i++) cin >> ice[i];
	
	sort(fire+1, fire+fire_num+1, big_to_small);
	
	if(min_num == fire_num) for(int i=min_num+1; i<=ice_num; i++) ans += ice[i];
	else for(int i=min_num+1; i<=fire_num; i++) ans += fire[i];
	
	for(int i=1; i<=min_num; i++){
		if(fire[i]*2+ice[i] > fire[i]+ice[i]+k) ans += (fire[i]*2 + ice[i]);
		else ans += (fire[i] + ice[i] + k);
	}
	
	cout << ans;
}

这是经过修改后AC的代码。

但是真的不知道哪里出了问题,自己写了几串数据,两种代码输出的都是一样的结果。

#include <iostream>
#include <algorithm>


using namespace std;


// variable
int fire[1000005];
int ice[1000005];
int fire_num, ice_num, k;
long long ans;

// function
bool big_to_small(int a, int b){
	return a>b;
}

int main(){
	cin >> fire_num >> ice_num >> k;
	int min_num = min(fire_num, ice_num);
	
	for(int i=1; i!=fire_num+1; i++) cin >> fire[i], ans+=fire[i];
	for(int i=1; i!=ice_num+1; i++) cin >> ice[i], ans+=ice[i];
	
	sort(fire+1, fire+fire_num+1, big_to_small);
	
	for(int i=1; i<=min_num; i++){
		ans += max(fire[i], k);
	}
	
	cout << ans;
}
2023/5/8 17:27
加载中...