蓝桥杯算法训练:利润最大化问题(C语言实现)
最编程
2024-08-14 17:10:01
...
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[101][101],b[101][101];//定义四个二维数组
long long c[101][101],d[101][101];
int m/*时间段*/,n/*店的个数*/;
int i,j;
scanf("%d %d",&n,&m);
for(i = 0;i < n;i++){
for(j = 0;j < m;j++){
scanf("%d",&a[i][j]);//服务员的个数
}
}
for(i = 0;i < n;i++){
for(j = 0;j < m;j++){
scanf("%d",&b[i][j]);
}
}
for(i = 0;i < n;i++){
for(j = 0;j < m;j++){
scanf("%lld",&c[i][j]);//他cij的值特别大,所以要用long long
}
}
//题意是一个服务员只能服务一个顾客,多了他就不干了(好傻啊,QAQ)
for(i = 0;i < n;i++){
for(j = 0;j < m;j++){
if(a[i][j] < b[i][j]){//当服务员的数量小于顾客的数量时
d[i][j] = c[i][j] * a[i][j];//服务员 * 金额
}
else{
d[i][j] = b[i][j] * c[i][j];//顾客数 * 金额
}
}
}
long long cns = 0;
for(i = 0;i < n;i++){
long long max = 0;//取每家店的最大值
for(j = 0;j < m;j++){
if(d[i][j] >= max){
max = d[i][j];
}
}
cns += max;//累加
}
printf("%lld",cns);
return 0;
}