luogu#P14995. [Nordic OI 2020] Apple Delivery

[Nordic OI 2020] Apple Delivery

题目描述

苹果农场主 Ingrid 刚刚收获了大量的苹果,打算分给自己和她的邻居们。她的邻里可以表示为一个无限的平面,其中每个整数坐标点上都恰好有一栋房子。Ingrid 的房子位于原点 (0,0)(0, 0)。Ingrid 在分配苹果时有一个特别的策略。首先,她选定一个包含 nn 个非负整数 r1,r2,,rnr_1, r_2, \cdots, r_n 的列表。对于列表中的每个数,她会给半径 rir_i 内的每栋房子(包括她自己的房子)一个苹果,即所有坐标满足 x2+y2ri2x^2 + y^2 \leq r_i^2 的房子。这样,Ingrid 的近邻们会比远邻们得到更多的苹果。

Ingrid 刚刚选定了半径列表,但随即出现了一个问题。她在分配苹果时总是将苹果放入立方体形状的盒子里,每个盒子能装八个苹果。因此,分发的苹果总数是八的倍数这一点非常重要。Ingrid 需要从列表中移除一些半径,使得给出的苹果总数变为八的倍数。这样做总是可行的,例如移除所有半径,但 Ingrid 不想显得贪婪,所以她希望以一种方式移除半径,使得她原本计划给出的苹果中未被分发的数量最少。你的任务是找出这个最小值。

输入格式

  • 第一行:整数 NN,即半径的数量(1N31051 \leq N \leq 3 \cdot 10^5)。
  • 第二行:由空格分隔的整数 r1,r2,,rNr_1, r_2, \ldots, r_N0ri31050 \leq r_i \leq 3 \cdot 10^5)。

输出格式

输出一个整数,表示 Ingrid 通过从列表中移除半径,使得分发的苹果总数变为八的倍数时,所能保留不分发的苹果数的最小值。

6
1 0 2 1 0 0
2

提示

在半径分别为:

  • 0 内有 1 栋房子;
  • 1 内有 5 栋房子;
  • 2 内有 13 栋房子。

因此,在这些半径内总共有 26 栋房子。通过移除两个半径为 0 的项,剩下 24 栋房子。

评分细则

你的解法将通过子任务进行测试。要获得一个子任务的分数,你需要通过该子任务中的所有测试用例。

# 分数 限制条件
1 15 n10n \leq 10,且对所有 iiri300r_i \leq 300
2 25 n3000n \leq 3000,且对所有 iiri1000r_i \leq 1000
3 15 n3105n \leq 3 \cdot 10^5,且对所有 iiri104r_i \leq 10^4
4 45 无额外限制。

翻译由 DeepSeek V3 完成