CF285C.Building Permutation
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Permutation p is an ordered set of integers _p_1, _p_2, ..., p__n, consisting of n distinct positive integers, each of them doesn't exceed n. We'll denote the i-th element of permutation p as p__i. We'll call number n the size or the length of permutation _p_1, _p_2, ..., p__n.
You have a sequence of integers _a_1, _a_2, ..., a__n. In one move, you are allowed to decrease or increase any number by one. Count the minimum number of moves, needed to build a permutation from this sequence.
排列 p 是一个由 n 个互不相同的正整数构成的有序整数集合 p1, p2, …, pn,其中每个数均不超过 n。我们将排列 p 的第 i 个元素记为 pi。我们称 n 为排列 p1, p2, …, pn 的大小(或长度)。
你有一个整数序列 a1, a2, …, an。在一次操作中,你可以将任意一个数增加或减少 1。求将该序列变为一个排列所需的最少操作次数。
输入格式
The first line contains integer n (1 ≤ n ≤ 3·105) — the size of the sought permutation. The second line contains n integers _a_1, _a_2, ..., a__n ( - 109 ≤ a__i ≤ 109).
第一行包含一个整数 n(1≤n≤3⋅105)—— 所求排列的长度。
第二行包含 n 个整数 a1,a2,…,an(−109≤ai≤109)。
输出格式
Print a single number — the minimum number of moves.
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.
输出一个整数——最少移动次数。
请注意,在 C++ 中读取或写入 64 位整数时,请勿使用 %lld 说明符。推荐使用 cin、cout 流,或 %I64d 说明符。
输入输出样例
输入#1
2 3 0
输出#1
2
输入#2
3 -1 -1 2
输出#2
6
说明/提示
In the first sample you should decrease the first number by one and then increase the second number by one. The resulting permutation is (2, 1).
In the second sample you need 6 moves to build permutation (1, 3, 2).
在第一个样例中,你应该将第一个数减一,然后将第二个数加一。得到的排列为 (2,1)。
在第二个样例中,你需要 6 步操作来构造排列 (1,3,2)。
输入解题思路,AI测评打分。不知道怎么写?