Submission #64377726


Source Code Expand

#include <bits/stdc++.h>
#ifdef LOCAL
#include "Debug.h"
#else
#define debug(...) 42
#endif
using namespace std;
const long long oo = 1LL << 60;

int main()
{
  int n;
  cin >> n;
  vector<long long> a(n + 1), s(n + 1);
  for (int i = 1; i <= n; i++)
  {
    cin >> a[i];
    s[i] = s[i - 1] ^ a[i];
  }

  if (n == 1)
  {
    cout << a[1] << endl;
    return 0;
  }

  vector<vector<long long>> f(n + 2, vector<long long>(n + 2));
  for (int i = 1; i <= n; i++)
    f[i][i] = oo;

  for (int len = 2; len <= n; len++)
    for (int i = 1; i + len - 1 <= n; i++)
    {
      int j = i + len - 1;
      long long xorAll = s[j] ^ s[i - 1];
      f[i][j] = oo;
      for (int k = i + 1; k < j; k++)
      {
        long long curF = f[i][k] + f[k + 1][j];
        if (k % 2 == i % 2)
          curF += xorAll;
        if (k % 2 != j % 2)
          curF += xorAll;
        f[i][j] = min(f[i][j], curF);
      }

      if (len % 2)
      {
        for (int k = i; k <= j; k += 2)
          f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 1][j]);
      }
      else
      {
        for (int k = i; k <= j; k++)
          if (k % 2 == i % 2)
          {
            f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 1][j - 1] + xorAll * 2);
            f[i][j] = min(f[i][j], f[i][k - 1] + f[k + 2][j] + xorAll * 2);
          }
          else
          {
            f[i][j] = min(f[i][j], f[i + 1][k - 1] + f[k + 1][j] + xorAll * 2);
          }
      }
    }

  if (n % 2)
    f[1][n] += s[n];
  cout << f[1][n] << endl;
}

Submission Info

Submission Time
Task A - XOR Cross Over
User flashmt
Language C++ 20 (gcc 12.2)
Score 700
Code Size 1575 Byte
Status AC
Exec Time 63 ms
Memory 5640 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 46
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_case_01.txt, 01_random_case_02.txt, 01_random_case_03.txt, 01_random_case_04.txt, 01_random_case_05.txt, 01_random_case_06.txt, 02_max_case_01.txt, 02_max_case_02.txt, 02_max_case_03.txt, 02_max_case_04.txt, 02_max_case_05.txt, 02_max_case_06.txt, 02_max_case_07.txt, 02_max_case_08.txt, 02_max_case_09.txt, 02_max_case_10.txt, 02_max_case_11.txt, 02_max_case_12.txt, 02_max_case_13.txt, 02_max_case_14.txt, 02_max_case_15.txt, 02_max_case_16.txt, 02_max_case_17.txt, 02_max_case_18.txt, 02_max_case_19.txt, 02_max_case_20.txt, 02_max_case_21.txt, 02_max_case_22.txt, 02_max_case_23.txt, 02_max_case_24.txt, 02_max_case_25.txt, 02_max_case_26.txt, 02_max_case_27.txt, 02_max_case_28.txt, 02_max_case_29.txt, 02_max_case_30.txt, 02_max_case_31.txt, 02_max_case_32.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 1 ms 3440 KiB
00_sample_02.txt AC 1 ms 3428 KiB
00_sample_03.txt AC 1 ms 3472 KiB
01_random_case_01.txt AC 61 ms 5444 KiB
01_random_case_02.txt AC 2 ms 3500 KiB
01_random_case_03.txt AC 27 ms 4736 KiB
01_random_case_04.txt AC 56 ms 5336 KiB
01_random_case_05.txt AC 35 ms 4908 KiB
01_random_case_06.txt AC 61 ms 5464 KiB
02_max_case_01.txt AC 61 ms 5448 KiB
02_max_case_02.txt AC 61 ms 5460 KiB
02_max_case_03.txt AC 63 ms 5348 KiB
02_max_case_04.txt AC 62 ms 5456 KiB
02_max_case_05.txt AC 61 ms 5448 KiB
02_max_case_06.txt AC 61 ms 5524 KiB
02_max_case_07.txt AC 61 ms 5444 KiB
02_max_case_08.txt AC 61 ms 5444 KiB
02_max_case_09.txt AC 61 ms 5628 KiB
02_max_case_10.txt AC 61 ms 5444 KiB
02_max_case_11.txt AC 61 ms 5556 KiB
02_max_case_12.txt AC 63 ms 5436 KiB
02_max_case_13.txt AC 62 ms 5636 KiB
02_max_case_14.txt AC 62 ms 5476 KiB
02_max_case_15.txt AC 63 ms 5420 KiB
02_max_case_16.txt AC 61 ms 5360 KiB
02_max_case_17.txt AC 61 ms 5528 KiB
02_max_case_18.txt AC 61 ms 5436 KiB
02_max_case_19.txt AC 61 ms 5460 KiB
02_max_case_20.txt AC 63 ms 5464 KiB
02_max_case_21.txt AC 62 ms 5636 KiB
02_max_case_22.txt AC 61 ms 5532 KiB
02_max_case_23.txt AC 62 ms 5460 KiB
02_max_case_24.txt AC 62 ms 5556 KiB
02_max_case_25.txt AC 62 ms 5604 KiB
02_max_case_26.txt AC 61 ms 5528 KiB
02_max_case_27.txt AC 62 ms 5468 KiB
02_max_case_28.txt AC 61 ms 5432 KiB
02_max_case_29.txt AC 61 ms 5476 KiB
02_max_case_30.txt AC 62 ms 5640 KiB
02_max_case_31.txt AC 62 ms 5472 KiB
02_max_case_32.txt AC 61 ms 5476 KiB
03_handmade_01.txt AC 1 ms 3528 KiB
03_handmade_02.txt AC 1 ms 3432 KiB
03_handmade_03.txt AC 63 ms 5464 KiB
03_handmade_04.txt AC 63 ms 5440 KiB
03_handmade_05.txt AC 61 ms 5472 KiB