CSES - Leirikisa 2 - Results
Submission details
Task:Järjestys
Sender:Kuha
Submission time:2016-07-28 14:35:52 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED100
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.07 sdetails
#7ACCEPTED0.07 sdetails
#8ACCEPTED0.10 sdetails
#9ACCEPTED0.09 sdetails
#10ACCEPTED0.09 sdetails

Code

#include <bits/stdc++.h>
#define ll long long
#define INF 999999999
#define N (1<<17)
#define M 1000000007

using namespace std;

int v[2*N];

void ch (int n, int k) {
  k += N;
  v[k] = n;
  for (k /= 2; k >= 1; k /= 2) v[k] = max(v[2 * k], v[2 * k + 1]);
}

int sum (int n, int k) {
  k += N;
  n += N;
  int s = 0;
  while (n <= k) {
    if (n % 2 == 1) s = max(v[n++], s);
    if (k % 2 == 0) s = max(v[k--], s);
    n /= 2;
    k /= 2;
  }
  return s;
}

int main () {
  int n;
  cin>>n;
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    int x;
    cin>>x;
    int q = sum(1, x - 1) + 1;
    ans = max(ans, q);
    ch(q, x);
  }
  cout<<n - ans<<endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
20
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
0

user output
0

Test 2

Verdict: ACCEPTED

input
20
20 19 18 17 16 15 14 13 12 11 ...

correct output
19

user output
19

Test 3

Verdict: ACCEPTED

input
20
12 2 14 4 5 6 7 8 9 10 11 1 13...

correct output
4

user output
4

Test 4

Verdict: ACCEPTED

input
20
17 19 9 20 16 15 14 13 12 11 1...

correct output
17

user output
17

Test 5

Verdict: ACCEPTED

input
20
14 17 6 2 1 18 3 10 15 5 7 8 4...

correct output
11

user output
11

Test 6

Verdict: ACCEPTED

input
100000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
0

user output
0

Test 7

Verdict: ACCEPTED

input
100000
100000 99999 99998 99997 99996...

correct output
99999

user output
99999

Test 8

Verdict: ACCEPTED

input
100000
1 31396 3 4 5 6 7 8 9 10 11 12...

correct output
18136

user output
18136

Test 9

Verdict: ACCEPTED

input
100000
100000 99999 99998 99997 99996...

correct output
99739

user output
99739

Test 10

Verdict: ACCEPTED

input
100000
64356 85816 57765 61431 4519 7...

correct output
99377

user output
99377