题目大意:输入S1,S2,S3,随机生成三个数x,y,z,求x+y+z出现次数最多的数(如果有多个答案输出最小的),其中1<=x<=S1,1<=y<=S2,1<=z<=S3。
数据范围:(2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3 <= 40)
由题可知数据范围不大,可以直接暴力,请见代码
/*
浴谷2911
*/
#include <iostream>
using namespace std;
int main()
{
int a,b,c,x[200],ans=0,ansx=0;
cin >> a >> b >> c;
for(int i=1;i<=199;i++)x[i]=0;
for(int i=1;i<=a;i++)
for(int j=1;j<=b;j++)
for(int k=1;k<=c;k++)
x[i+j+k]++;
for(int i=1;i<=199;i++)
if(x[i]>ansx){ansx=x[i];ans=i;}
cout << ans << endl;
return 0;
}