基因序列
题号:NC204559
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

    冠状病毒在系统分类上属套式病毒目(Nidovirales)冠状病毒科(Coronaviridae)冠状病毒属(Coronavirus)。冠状病毒属的病毒是具囊膜(envelope)、基因组为线性单股正链的RNA病毒,是自然界广泛存在的一大类病毒。2019新型冠状病毒(2019-nCoV)是目前已知的第7种可以感染人的冠状病毒。

    1月12日世界卫生组织官微报道:中国与世卫组织分享新型冠状病毒(2019-nCoV)全基因组序列。

    现假设2019-nCoV的基因序列长度为n,且所有基因均不相同,我们对其进行切片处理,一共可以获得基因序列片段。例如,假设基因序列为abc,我们获得的基因序列片段有a、b、c、ab、bc、abc,共六种。
假设有基因序列人工拼接的科学技术,可以把任意基因序列a和b,拼接合成基因序列ab,这里简记为a+b=ab。
    现在我们提供这种基因序列片段,每种基因序列片段各一个。想通过人工拼接的技术,尽可能还原2019-nCoV基因序列。现请问使用这全部个基因序列片段,尽可能拼接后,最少形成多少个新的2019-nCoV基因序列片段。(要求合成之后的基因序列片段必须仍是2019-nCoV基因序列的片段)

输入描述:

第一行输入一个整数,表示共组用例。()

接下来行,每行一个整数,代表基因序列长度。()

输出描述:

行,每行一个整数,表示最少可形成的新的2019-nCoV基因序列片段数。
示例1

输入

复制
3
1
2
3

输出

复制
1
2
4

说明

基因序列长度为3时,假设完整序列为abc,则序列片段有a、b、c、ab、bc、abc,
拼接之后为a+bc=abc、ab+c=abc、abc、b共4个新的基因序列片段。

备注: