Submission #1458766


Source Code Expand

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <string>
#include <queue>
#include <map>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <sstream>
#include <set>
using namespace std;

long long inv(int* a, int cnt) {
  if (cnt <= 1) return 0;
  long long res = inv(a, cnt/2) + inv(a + cnt/2, cnt-cnt/2);
  sort(a, a+cnt/2);
  sort(a+cnt/2, a+cnt);
  int cc = 0;
  for (int i=0; i<cnt/2; i++) {
    while (cc < cnt-cnt/2 && a[cnt/2+cc] < a[i]) cc ++;
    res += cc;
  }
  return res;
}


int a[1000000];

int main()
{
  int n;
  cin >> n;
  for (int i=0; i<n; i++) cin >> a[i];
  cout << inv(a, n) << endl;
}

Submission Info

Submission Time
Task J - 転倒数
User ainu7
Language C++14 (GCC 5.4.1)
Score 400
Code Size 698 Byte
Status AC
Exec Time 86 ms
Memory 640 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 23
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Case Name Status Exec Time Memory
01-01.txt AC 40 ms 384 KiB
01-02.txt AC 85 ms 640 KiB
01-03.txt AC 86 ms 640 KiB
01-04.txt AC 48 ms 640 KiB
01-05.txt AC 49 ms 640 KiB
01-06.txt AC 48 ms 640 KiB
01-07.txt AC 50 ms 640 KiB
01-08.txt AC 68 ms 640 KiB
01-09.txt AC 66 ms 640 KiB
01-10.txt AC 67 ms 640 KiB
01-11.txt AC 69 ms 640 KiB
01-12.txt AC 67 ms 640 KiB
01-13.txt AC 68 ms 640 KiB
01-14.txt AC 66 ms 640 KiB
01-15.txt AC 67 ms 640 KiB
sample_01.txt AC 1 ms 256 KiB
sample_02.txt AC 1 ms 256 KiB
sample_03.txt AC 1 ms 256 KiB
sample_04.txt AC 1 ms 256 KiB