Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- typedef long long int ll;
- ll table[1010];
- ll arr[1010];
- ll min(ll a,ll b){
- return (a < b ? a : b);
- }
- ll c;
- ll recur(ll x){
- ll mina = 2e18;
- if(x == 0)return 0;
- if(table[x] != -1)return table[x];
- if(table[x] == -1){
- for(int i=1;i<=x;i++){
- mina = min(mina,recur(i-1) + ((arr[x] - arr[i])*(arr[x] - arr[i])) + c );
- }
- table[x] = mina;
- }
- return table[x];
- }
- int main()
- {
- for(int i=1;i<1010;i++)table[i] = -1;
- int n;
- scanf("%d %lld",&n,&c);
- for (int i=1;i<=n;i++){
- scanf("%lld",&arr[i]);
- }
- printf("%lld",recur(n));
- /* for(int i=1;i<=m;i++){
- ll x;
- scanf("%lld",&x);
- printf("%lld\n",recur(x));
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement