Đảng viên Hanni
Senior Member
@chiyeuemthoi Nộp bài thử nào bạng.
![iErjo0A.png](/proxy.php?image=https%3A%2F%2Fi.imgur.com%2FiErjo0A.png&hash=7748b05fa2a370c98378e9c6ec3da351)
C++:
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define faster() ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define i64 long long
typedef vector<i64> vi;
typedef pair<i64,i64> pii;
typedef double ld;
typedef unsigned long long ull;
typedef tree<i64, null_type, less_equal<i64>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset;
typedef tree<i64, null_type, less<i64>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
int main(){
faster();
int t;
cin>>t;
while(t--){
int n, ins, del, cop;
cin>>n>>ins>>del>>cop;
int dp[n+1];
dp[0]=0;
for(int i=1;i<=n;i++){
dp[i]=min(dp[i-1]+ins,(i%2==0?dp[i/2]+cop:dp[(i+1)/2]+cop+del));
}
cout<<dp[n]<<"\n";
}
return 0;
}