Pagini recente » Cod sursa (job #2058327) | Cod sursa (job #2576079) | Cod sursa (job #1650424) | Cod sursa (job #2260073) | Cod sursa (job #2840755)
#include <bits/stdc++.h>
using namespace std;
const int INF=2e9;
int best[2][200005];
int main(){
ifstream fin("profit.in");
ofstream fout("profit.out");
int n; fin>>n;
int vmax=0;
vector<int> a(n+1,0);
for(int i=1;i<=n;++i){
fin>>a[i];
vmax=max(a[i],vmax);
}
//the phun begins
for(auto &x:best){
for(auto &y:x){
y=INF;
}
}
int ans=INF;
int used=1;
for(int i=1;i<=n;++i){
used=!used;
for(int x=1;x<=vmax;++x){
best[used][x]=INF;
if(i==1)
best[used][x]=abs(x-a[i]);
else{
for(int y=1;y<=x;++y)
best[used][x]=min(best[!used][y]+abs(a[i]-x), best[used][x]);
}
if(i==n)
ans=min(best[used][x],ans);
cout<<best[used][x]<<" ";
}
cout<<"\n";
}
fout<<ans;
}