Submission #36681588


Source Code Expand

#include <bits/stdc++.h>
#define st first
#define nd second
#define db double
#define re register
#define pb push_back
#define mk make_pair
#define int long long
#define ldb long double
#define pii pair<int, int>
#define ull unsigned long long
#define mst(a, b) memset(a, b, sizeof(a))
using namespace std;
const int N = 2e5 + 10, INF = 2e9;
inline int read()
{
  int s = 0, w = 1;
  char ch = getchar();
  while(ch < '0' || ch > '9') { if(ch == '-') w *= -1; ch = getchar(); }
  while(ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
  return s * w;
}
int n, c, ans, a[N];
vector<int> op;
inline int f(int x)
{
  int res = a[x];
  for(re int x : op) res = 2 * x - res;
  return res;
}
signed main()
{
 // freopen("data.in", "r", stdin);
 // freopen("sol.out", "w", stdout);
  n = read(), ans = INF;
  for(re int i = 1; i <= n; i++) a[i] = read();
  c = a[n] - a[1];
  for(re int t = 1; t <= 1e3; t++){
    if(t & 1){
      int l = 1, r = n, mx = f(n);
      int x = (mx + 1) / 2, res;
      while(l <= r){
        int mid = (l + r) >> 1, v = f(mid);
        if(v >= x) res = v, r = mid - 1;
        else l = mid + 1;
      }
      ans = min(ans, c + 2 * res - mx), op.pb(res);
    }
    else{
      int l = 1, r = n, mx = f(1);
      int x = (mx + 1) / 2, res;
      while(l <= r){
        int mid = (l + r) >> 1, v = f(mid);
        if(v >= x) res = v, l = mid + 1;
        else r = mid - 1;
      }
      ans = min(ans, c + 2 * res - mx), op.pb(res);
    }
  }
  printf("%lld\n", ans);
  return 0;
}

Submission Info

Submission Time
Task C - Pivot
User Booksnow
Language C++ (GCC 9.2.1)
Score 0
Code Size 1579 Byte
Status WA
Exec Time 26 ms
Memory 5264 KiB

Compile Error

./Main.cpp: In function ‘long long int f(long long int)’:
./Main.cpp:28:14: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
   28 |   for(re int x : op) res = 2 * x - res;
      |              ^
./Main.cpp: In function ‘int main()’:
./Main.cpp:36:14: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
   36 |   for(re int i = 1; i <= n; i++) a[i] = read();
      |              ^
./Main.cpp:38:14: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
   38 |   for(re int t = 1; t <= 1e3; t++){
      |              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 2
AC × 8
WA × 30
Set Name Test Cases
Sample sample1.txt, sample2.txt
All in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt
Case Name Status Exec Time Memory
in1.txt WA 8 ms 3640 KiB
in10.txt WA 26 ms 5068 KiB
in11.txt WA 21 ms 5192 KiB
in12.txt WA 24 ms 5264 KiB
in13.txt WA 22 ms 5068 KiB
in14.txt WA 20 ms 5068 KiB
in15.txt WA 19 ms 5148 KiB
in16.txt WA 20 ms 5200 KiB
in17.txt WA 26 ms 5104 KiB
in18.txt WA 21 ms 5212 KiB
in19.txt WA 17 ms 4592 KiB
in2.txt AC 4 ms 3592 KiB
in20.txt WA 17 ms 4616 KiB
in21.txt WA 12 ms 3704 KiB
in22.txt WA 16 ms 3740 KiB
in23.txt WA 14 ms 3784 KiB
in24.txt WA 11 ms 3648 KiB
in25.txt WA 10 ms 3668 KiB
in26.txt WA 11 ms 3592 KiB
in27.txt WA 8 ms 3588 KiB
in28.txt WA 7 ms 3520 KiB
in29.txt WA 15 ms 3588 KiB
in3.txt AC 7 ms 3512 KiB
in30.txt WA 11 ms 3596 KiB
in31.txt WA 7 ms 3536 KiB
in32.txt WA 6 ms 3532 KiB
in33.txt WA 6 ms 3536 KiB
in34.txt WA 8 ms 3548 KiB
in35.txt AC 9 ms 3564 KiB
in36.txt AC 9 ms 3636 KiB
in4.txt AC 6 ms 3640 KiB
in5.txt WA 25 ms 5180 KiB
in6.txt AC 26 ms 5068 KiB
in7.txt WA 21 ms 5108 KiB
in8.txt WA 25 ms 5144 KiB
in9.txt WA 23 ms 5064 KiB
sample1.txt AC 7 ms 3520 KiB
sample2.txt AC 7 ms 3552 KiB