AT_utpc2013_04.壊れかけのヒープ

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

也就是说,给定输入 A0...AN−1A_0...A_{N−1},请你求出满足以下条件的数组 H0...HM−1H_0...H_{M−1},并输出其长度 MM 作为答案。

  • 所有 HiH_i 都是大于等于 00 的整数。
  • 数组中的元素互不相同。也就是说,如果 i≠ji\neq j,则 Hi≠HjH_i\neq H_j。
  • 该数组表示一个二叉堆。也就是说,始终有 Hi<H2i+1H_i < H_{2i+1} 且 Hi<H2i+2H_i < H_{2i+2}。
  • AA 是 HH 的后缀。也就是说,对于所有 0≤k<N0\leq k<N,都有 Ak=HM−N+kA_k=H_{M−N+k}。

如果有多种可能,请输出最小的 MM。如果不存在满足条件的 HH,请输出 −1-1。

输入格式

输入按以下格式给出。

NN A0A_0 A1⋯AN−1A_1\cdots A_{N-1}

输出格式

请将问题的解输出为一行。

输入输出样例

  • 输入#1

    3
    4 2 3
    

    输出#1

    5
    
  • 输入#2

    3
    3 1 2
    

    输出#2

    -1
    
  • 输入#3

    4
    10 20 40 30
    

    输出#3

    4
    
  • 输入#4

    4
    9 2 3 6
    

    输出#4

    8
    

说明/提示

输入中的各个变量满足以下约束条件。

  • 1≤N≤1001\leq N\leq 100
  • 0≤Ai≤1090 \leq A_{i} \leq 10^9
  • AiA_i 是互不相同的非负整数。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页