鼬先生太强了,1.数组开小了,你开的s[3]只有s[0,1,2]并不包含s[3],以后多开点,别超过1e7就好,然后最后不需要sort,两个min就行,然后中间
```
s[1]=q/sl[1]*jq[1]+jq[1];
s[2]=q/sl[2]*jq[2]+jq[2];
s[3]=q/sl[3]*jq[3]+jq[3];
```
也不对,c++会自动向下取整,要加向上取整的函数ceil,鼬先生,还是纯模拟比较有性价比啊
```
#include <bits/stdc++.h>
using namespace std;
struct node {
int jg;
int sl;
int zjg;
} a[5];
int main() {
int n;
scanf("%d",&n);
int n1 = n, n2 = n, n3 = n;
for (int i = 1; i <= 3; i++)
scanf("%d%d",&a[i].sl,&a[i].jg);
while (n1 > 0) {
n1 = n1 - a[1].sl;
a[1].zjg = a[1].zjg + a[1].jg;
}
while (n2 > 0) {
n2 = n2 - a[2].sl;
a[2].zjg = a[2].zjg + a[2].jg;
}
while (n3 > 0) {
n3 = n3 - a[3].sl;
a[3].zjg = a[3].zjg + a[3].jg;
}
a[2].zjg = min(a[2].zjg, a[3].zjg);
a[1].zjg = min(a[2].zjg, a[1].zjg);
printf("%d\n",a[1].zjg);
return 0;
}
```
AC代码
以后有问题可以私我,身为火批就应该团结友爱
by kmlihaiming @ 2023-11-21 14:17:16