fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. long long get_cnt(vector<long long>& y, vector<long long>& d, long long mid){
  7. long long cnt = 0;
  8. for(int i = 0; i < y.size(); i++){
  9. cnt += abs(y[i] - (mid + abs((int)y.size() / 2 - i)));
  10. cnt += abs(d[i] - (mid + abs((int)y.size() / 2 - i)));
  11. }
  12. return cnt;
  13. }
  14.  
  15. int main() {
  16.  
  17. ios_base::sync_with_stdio(0);
  18. cin.tie(0);
  19.  
  20. int n;
  21. cin >> n;
  22.  
  23. vector<long long> y(n);
  24. vector<long long> d(n);
  25.  
  26. for(int i = 0; i < n; i++){
  27. cin >> y[i];
  28. }
  29.  
  30. for(int i = 0; i < n; i++){
  31. cin >> d[i];
  32. }
  33.  
  34. long long left = 0;
  35. long long right = 1e12 + 1;
  36.  
  37. for(int i = 0; i < 100; i++){
  38. long long p1 = (2 * left + right) / 3;
  39. long long p2 = (left + 2 * right) / 3;
  40. if(get_cnt(y, d, p1) > get_cnt(y, d, p2)){
  41. left = p1;
  42. }else{
  43. right = p2;
  44. }
  45. }
  46.  
  47. cout << get_cnt(y, d, (left + right) / 2);
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0.01s 5460KB
stdin
7
3 2 1 0 1 2 3
3 2 1 0 1 2 3
stdout
Standard output is empty