多边形之殇
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
ひとりぼっちで 今 私は答えを探す
パラドックスに阻まれて
それでも分かりたいことがあるの
とりとめのない単純作業でも少しでも正解に近づきたくて
参考翻译:
即便此刻我孤身一人 仍在寻找着答案 纵然被悖论所阻挡 仍有想要知晓的真相 哪怕是漫无目的的简单重复 也愿朝着正确答案多靠近一步
题目描述
有若干个小木棍,你可以把它们摆成多边形。
若干次询问,每次询问用 根小木条能摆成的多边形的最大周长。
本题是一道交互题,只能使用 C++ 语言,你不需要也不应该实现 main 函数。
你需要在代码中引入 polygon.h。
你需要实现以下函数:
void init(int n, std::vector<int> a);- 该函数输入一个正整数 和一个长度恰好为 的序列,表示小木棍个数与分别的长度。
- 保证在每次调用中,此函数在
ask函数之前被执行,且只执行一次。
std::vector<long long> ask(int q, std::vector<int> b);- 该函数可能会被调用多次。
- 输入一个正整数 ,和一个长度为 的序列 ,表示询问。
- 返回一个数列,表示按照 给出顺序的答案。
样例
考虑以下调用:
init(3,{3,4,5});ask(1,{3});- 显然数据可以构成一个三角形,所以返回 。
数据范围和限制
程序每次运行,init 函数将会被调用 次,ask 函数将被调用 次。()
对 的数据,,,,,。
子任务
- (5 分),。
- (2 分)。
- (18 分)。
- (15 分)。
- (17 分)。
- (2 分)。
- (41 分)无特殊限制。
开启捆绑测试,并有合理的依赖。
样例交互库
本题下发文件中还有一个样例交互库。
样例交互库的输入格式为:
- 第一行一个正整数 ,表示序列长度。
- 第二行 个正整数,表示输入序列 。
- 第三行一个正整数 ,表示询问次数。
- 接下来 行,每行第一个数 ,接下来 个正整数,表示询问长度和询问内容。
不满足交互库输入格式和数据范围的调用未定义。
交互库不会检查你的输入和答案是否合法。
如果运行正常,交互库会在标准输出(stdout)中输出 行,每行 个正整数表示你的程序的返回值。