Submission #207721

#TimeUsernameProblemLanguageResultExecution timeMemory
207721lagoon전봇대 (KOI13_pole)C++14
100 / 100
31 ms1716 KiB
// boj 8986 전봇대 #include <iostream> #include <algorithm> using namespace std; int position[100000], n; long long dist(long long x) { long long ret = 0; for (int i = 0; i < n; ++i) { ret += abs(x * i - position[i]); } return ret; } int main(void) { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i = 0; i < n; ++i) { cin >> position[i]; } long long left = position[0]; long long right = position[n-1]; while (right - left > 3) { long long mid1 = left + (right - left) / 3; long long mid2 = right - (right - left) / 3; if (dist(mid1) < dist(mid2)) right = mid2; else left = mid1; } long long ans = dist(right); for (int i = left; i < right; ++i) ans = min(ans, dist(i)); cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...