Submission #1305363


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#define REP(i,n) for(int i=0,_n=(int)(n);i<_n;++i)
template<class T>bool chmin(T&a,const T&b){return a>b?(a=b,true):false;}
template<class T>bool chmax(T&a,const T&b){return a<b?(a=b,true):false;}

int nextInt() { int x; scanf("%d", &x); return x;}

const int MAX_N = 100000 + 10;
int A[MAX_N];
int Aorg[MAX_N];
int B[MAX_N];
int tmp[MAX_N];

// 内部的には 1-based であるが、利用するときには 0-based な実装
struct BIT {
  int n;
  vector<ll> tree;
  BIT(int n):n(n),tree(n+1) {} 
  void fill(ll val) {
    REP(i, n+1) tree[i] = (i&-i) * val;
  }
  void add(int idx, ll val) {
    for (int x=idx+1; x<=n; x+=x&-x) tree[x] += val;
  }
  ll range(int idx) {
    ll sum=0;
    for (int x=idx+1; x>0; x-=x&-x) sum += tree[x];
    return sum;
  }
  ll range(int a, int b) {
    return range(b) - range(a - 1);
  }
};


ll count_reverse_num(int* a, int N) {
  ll ans = 0;
  BIT bit(N);
  REP(i, N) {
    ans += i - bit.range(a[i]);
    bit.add(a[i], +1);
  }
  return ans;
}

void renumber(int *A, int *T, int N) {
  REP(i, N) tmp[T[i]] = i;
  REP(i, N) A[i] = tmp[A[i]];
}
void renumber_inv(int *A, int *T, int N) {
  REP(i, N) tmp[i] = T[i];
  REP(i, N) A[i] = tmp[A[i]];
}

int main2() {
  int N = nextInt();
  REP(i, N) A[i] = nextInt() - 1;
  REP(i, N) B[i] = nextInt() - 1;
  REP(i, N) Aorg[i] = A[i];

  // renumber(A, Aorg, N);
  renumber(B, Aorg, N);

  int bb = count_reverse_num(B, N);
  if (bb % 2 == 1) {
    cout << -1 << endl;
  } else {
    // O(N^2) 解法
    for (int i = N; i > 0; i--) {
      for (int j = i - 1; j > 0; j--) {
        if (B[j-1] < B[j] && bb > 0) {
          swap(B[j-1], B[j]);
          bb--;
          if (bb == 0) goto BK;
        }
      }
    }

    BK:
    renumber_inv(B, Aorg, N);
    REP(i, N) { if (i > 0)  cout << " "; cout << (B[i] + 1); } cout << endl;
  }
  return 0;
}

int main() {
  for (;!cin.eof();cin>>ws) main2();
  return 0;
}

Submission Info

Submission Time
Task C - 転倒距離
User hs484
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2063 Byte
Status WA
Exec Time 2103 ms
Memory 2560 KB

Compile Error

./Main.cpp: In function ‘int nextInt()’:
./Main.cpp:9:39: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
 int nextInt() { int x; scanf("%d", &x); return x;}
                                       ^

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 1
WA × 2
AC × 11
WA × 11
AC × 19
WA × 12
TLE × 10
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt
Case Name Status Exec Time Memory
sample_01.txt WA 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt WA 1 ms 256 KB
subtask1_01.txt AC 2 ms 256 KB
subtask1_02.txt WA 10 ms 384 KB
subtask1_03.txt WA 3 ms 256 KB
subtask1_04.txt WA 3 ms 256 KB
subtask1_05.txt AC 2 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt WA 2 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt WA 7 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt WA 8 ms 384 KB
subtask1_12.txt AC 2 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 2 ms 256 KB
subtask1_15.txt AC 2 ms 384 KB
subtask1_16.txt WA 11 ms 384 KB
subtask1_17.txt AC 2 ms 384 KB
subtask1_18.txt WA 11 ms 384 KB
subtask1_19.txt WA 11 ms 384 KB
subtask2_01.txt AC 4 ms 640 KB
subtask2_02.txt TLE 2103 ms 2048 KB
subtask2_03.txt TLE 2103 ms 2432 KB
subtask2_04.txt AC 14 ms 1536 KB
subtask2_05.txt AC 20 ms 2048 KB
subtask2_06.txt AC 12 ms 1280 KB
subtask2_07.txt AC 21 ms 2176 KB
subtask2_08.txt TLE 2103 ms 2432 KB
subtask2_09.txt AC 14 ms 1536 KB
subtask2_10.txt AC 13 ms 1408 KB
subtask2_11.txt WA 1914 ms 1280 KB
subtask2_12.txt TLE 2103 ms 2560 KB
subtask2_13.txt TLE 2103 ms 2560 KB
subtask2_14.txt AC 25 ms 2304 KB
subtask2_15.txt TLE 2103 ms 2560 KB
subtask2_16.txt TLE 2103 ms 2560 KB
subtask2_17.txt TLE 2103 ms 2560 KB
subtask2_18.txt TLE 2103 ms 2560 KB
subtask2_19.txt TLE 2103 ms 2560 KB