Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long lli;
- const int N = 1000;
- int arr[N + 10];
- lli dp[N + 10];
- int main(){
- int nNumber, Q, cnst;
- scanf("%d%d%d", &nNumber, &Q, &cnst);
- dp[0] = 0;
- for(int i = 1; i <= nNumber; ++i){
- scanf("%d", &arr[i]);
- lli mn = 1e18;
- for(int j = 1; j <= i; ++j){
- mn = min(mn, dp[j - 1] + (lli)(arr[i] - arr[j]) * (arr[i] - arr[j]));
- }
- dp[i] = mn + cnst;
- }
- for(int q = 1; q <= Q; ++q){
- int x;
- scanf("%d", &x);
- cout << dp[x] << '\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement