이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
long long data[100010];
int n;
long long abs(long long x) { return x>0?x:-x; }
long long getVal(long long x){
auto ret=0ll;
int i;
for(i=0;i<n;++i) ret+=abs(data[i]-i*x);
return ret;
}
int main()
{
scanf("%d",&n);
int i;
for(i=0;i<n;++i) scanf("%lld",data+i);
long long l=0, r=1LL<<30, a,b;
while(l+3<r){
a=(l*2+r)/3;
b=(l+2*r)/3;
if(getVal(a)<getVal(b)){
r=b;
} else l=a;
}
long long j,minval=1LL<<60;
for(j=l;j<=r;++j){
a=getVal(j);
if(minval>a) minval=a;
}
printf("%lld\n",minval);
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... |