#include <bits/stdc++.h>
using namespace std;
#define int long long
const int NM = 300, inf = 1e18;
int N, K, H[NM+5], C[NM+5], tmpH[NM+5], tmpC[NM+5];
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> N >> K;
for (int i = 1; i <= N; i++)
cin >> H[i] >> C[i];
int ans = +inf;
for (int i = 1; i <= N; i++){
int res = 0;
for (int j = 1; j <= N; j++){
tmpC[j] = 0;
if (j == i){
tmpH[j] = H[j];
continue;
}
tmpH[j] = max(H[i]+1, H[j]);
res += (tmpH[j]-H[j])*K;
}
for (int j = 1; j <= N; j++){
int kbest = -1;
for (int k = 1; k <= N; k++)
if (tmpH[k] < tmpH[j]){
if (kbest == -1 || (tmpC[k] < tmpC[kbest] || (tmpC[k] == tmpC[kbest] && tmpH[k] > tmpH[kbest])))
kbest = k;
}
if (kbest != -1){
res += tmpC[kbest];
if (tmpC[kbest] == 0) tmpC[kbest] = C[kbest];
}
}
ans = min(ans, res);
}
cout << ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |