模拟
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n,d,a,b;
int num;
int num_a = 1;
int num_b = 1;
int last;
int cur;
int main(){
//freopen("main.in","r",stdin);
cin >> n >> d >> a >> b;
cin >> cur;
last = cur;
for(int i = 2; i <= n; i++){
cin >> cur;
if(last == cur) continue;
if(last < cur){
num_b = 1;
int num_cur = min(d/cur,a*num_a);
num += num_cur;
d -= num_cur * cur;
num_a++;
}
if(last > cur){
num_a = 1;
int num_cur = min(num,b*num_b);
num -= num_cur;
d += num_cur * cur;
num_b++;
}
last = cur;
}
cout << d << " " << num << endl;
return 0;
}
本文提供了一个使用C++实现的模拟算法示例代码。该算法主要处理一系列数值输入,并通过增加或减少某些数值来调整总值。核心逻辑涉及比较当前值与前一个值,根据其相对大小进行相应的操作。
2443

被折叠的 条评论
为什么被折叠?



