C++伏黑甚尔
2023-08-17 09:34:19
发布于:河北
T3472.学费
通过率:33.33%
加入题单
题目描述
天下没有免费的午餐,唐僧取经都要破费呢!
假设您是即将新开 Azuo 大学的校长,总共有 1-100000学生可能参加大学学习,每位学生愿意支付 c 元当作学费。
如果实际学费要比他们愿意支付的多,那么他们将不考虑您的大学。
现在需要您来设定一个合理的学费,使得您获得的学费最多。
输入格式
第一行一个正整数 n,表示共有n名学生。第二行共 n 个 c 表示每个学生愿意支付的学费。
输出格式
输出两个整数,第一个表示学费最多总额,第二个表示学费价钱。
若有多种方案,输出学费价钱最低的那种。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=100000;
const int MIN=1;
int main(){
freopen("tuition.in","r",stdin);
freopen("tuition.out","w",stdout);
long long a;
int b,d,e=0,f=0,ggbond;
cin>>a;
int c[a];
for(int i=0;i<a;i++){
cin>>c[i];
}
for(int i=0;i<a-1;i++){
b-=b;
if(c[i]>c[i+1]){
b+=c[i];
c[i]-=c[i];
c[i]+=c[i+1];
c[i+1]-=c[i+1];
c[i+1]+=b;
}
}
for(int i=0;i<a;i++){
f-=f;
for(int gg=0;gg<a;gg++){
if(c[gg]>=c[i]){
f+=c[i];
}
}
if(f>e){
e-=e;
e+=f;
ggbond-=ggbond;
ggbond+=c[i];
}
}
cout<<e<<" "<<ggbond;
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也
有帮助,赞一个