问题标题: 酷町堂:2628 木材定价

0
0
已解决
刘意阳
刘意阳
初级天翼
初级天翼
#include <iostream>
#include <algorithm>
#define M 1000+5
using namespace std;
int n,m,s,a[M];
long long ans1,ans2;
bool cmp(int x,int y){
	return x>y;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i];
	}
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++){
		if((m-i+1)*a[i]>ans2){
			ans1=a[i];
			ans2=(m-i+1)*a[i];
		}
	}
	cout<<ans1<<' '<<ans2;
    return 0;
}

哪位大神可以解释一下为啥WA80?

刘意阳在2022-11-19 16:26:00追加了内容
#include <iostream>
#include <algorithm>
#define M 1000+5
using namespace std;
int n,m,s,a[M],cnt;
long long ans1,ans2;
bool cmp(int x,int y){
	return x>y;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i];
	}
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			if(a[j]>a[i]){
				cnt++;
			}
		}
		if(min(cnt,n)*a[i]>ans2){
			ans1=a[i];
			ans2=min(cnt,n)*a[i];
		}
	}
	cout<<ans1<<' '<<ans2;
    return 0;
}

@张世贤  ,为什么WA0???


0
0
0
张世贤
张世贤
中级守护
中级守护

好好读题,人家说只有n批木材,你当他是空气呢?(虽然我也是这样错的...)

而且,如果有出价一样的,你输出每次的(m-i+1)*a[i] 就会有错的,但没什么影响(我一开始也没注意到...)

0
张世贤
张世贤
中级守护
中级守护

我这么写的:
外层循环不变{
    遍历数组{
        if(当前元素大于a[i]){
            cnt++;
        }
    }
    下面if用min(cnt,n)*a[i]找最大值 
}

@刘意阳

我要回答