个人认为你sum初值赋小了,可以用cout<<min(s[1],min(s[2],s[3]))<<endl;可以去掉sum这个变量
by zy小可爱ღ @ 2017-07-19 22:22:06
```cpp
#include<ctdio>
#include<cstdlib>
int main()
{int i,j,n,a[10],b[10],s[10],t;
scanf("%d",&n);
for(i=0;i<3;i++)
scanf("%d%d",&a[i],&b[i]);
for(i=0;i<3;i++)
{
t=n/a[i];
if(t*a[i]==n)
s[i]=t*b[i];
if(t*a[i]!=n)
{
t=t+1;
s[i]=t*b[i];
}
}
for(i=0;i<2;i++)
for(j=0;j<3-1-i;j++)
if(s[j]>s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
printf("%d",s[0]);
return 0;
}
```
by 唯爱你一生 @ 2017-07-20 23:28:02
你把那个数据点下载了啊:
我的程序:
```cpp
#include<bits/stdc++.h>
using namespace std;
long long a[5][5],tot[5];
int xuwei(long long a,long long b,long long c)
{
long long tishen,sum=c;
tishen=b;
while (b<a)
{
b+=tishen;
sum+=c;
}
return sum;
}
int main()
{
long long i,j,m,min=9223372036854775807;
cin>>m;
for (i=1;i<=3;i++)
for (j=1;j<=2;j++)
cin>>a[i][j];
for (i=1;i<=3;i++)
{
tot[i]=xuwei(m,a[i][1],a[i][2]);
if (tot[i]<min) min=tot[i];
}
cout<<min<<endl;
return 0;
}
```
by Hanabi_BNUAZ @ 2017-08-04 09:52:09
```cpp
#include<iostream>
using namespace std;
int n,mini=0x7f7f7f7f;
struct pencil{
int number,money;
}a;
int does(){
int x=0,y=0;
while(1){
y+=a.money;
x+=a.number;
if(x>=n)return y;
}
}
int main(){
scanf("%d",&n);
int i=3;
while(i--){
scanf("%d%d",&a.number,&a.money);
mini=min(mini,does());
}
printf("%d",mini);
}
```
by ezoiHQM @ 2017-08-13 20:04:19
这里推荐一种赋sum初始值的办法,把sum赋值为0x7fffffff-1绝对够大
by a1234 @ 2017-08-14 17:32:14
@ 青春流觞,这道题sum最少是999999才行。
by 美人为限 @ 2017-09-02 13:47:12