#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define imie(x...) cerr << "[" #x "]: ", [](auto... $) {((cerr << $ << "; "), ...); }(x), cerr << '\n'
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef long double ld;
const int mod=1e9+7;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
int n, k;
cin >> n >> k;
vector<int> v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
ll ans = 0;
for(int i = 0; i < n; i++) {
ll akt = 0;
for(int j = 0; j < n; j++) {
ll x = (ll)v[j] - k * abs(i - j);
akt = max(akt, x);
}
ans += akt - v[i];
}
cout << ans;
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define imie(x...) cerr << "[" #x "]: ", [](auto... $) {((cerr << $ << "; "), ...); }(x), cerr << '\n' using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef long double ld; const int mod=1e9+7; typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; vector<int> v(n); for(int i = 0; i < n; i++) { cin >> v[i]; } ll ans = 0; for(int i = 0; i < n; i++) { ll akt = 0; for(int j = 0; j < n; j++) { ll x = (ll)v[j] - k * abs(i - j); akt = max(akt, x); } ans += akt - v[i]; } cout << ans; return 0; } |
English