题目名称 2851. Innovative Business
输入输出 business.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 4
题目来源 Gravatarsyzhaoss 于2025-11-03加入
开放分组 全部用户
提交状态
分类标签
二分法 交互式 排序
分享题解
通过:7, 提交:47, 通过率:14.89%
Gravatarexil 100 0.420 s 7.72 MiB C++
Gravatarexil 100 0.425 s 7.73 MiB C++
Gravatar赵飞羽 100 0.429 s 7.73 MiB C++
Gravatarsyzhaoss 100 0.432 s 5.50 MiB C++
Gravatarsyzhaoss 100 0.435 s 5.49 MiB C++
Gravatarexil 100 0.450 s 7.69 MiB C++
Gravatarexil 100 0.450 s 7.73 MiB C++
Gravatarsyzhaoss 75 0.411 s 5.50 MiB C++
Gravatar赵飞羽 75 0.421 s 7.71 MiB C++
Gravatar赵飞羽 75 0.425 s 7.67 MiB C++
关于 Innovative Business 的近10条评论(全部评论)

2851. Innovative Business

★★   输入文件:business.in   输出文件:business.out   交互式+评测插件
时间限制:1 s   内存限制:512 MiB

【题目描述】

这是一道交互题。

有$n$个元素,编号$1,2,3,\cdots,n$,每一对元素之间的大小关系是确定的,关系具有反对称性,但不具有传递性。

也就是说,元素的大小关系是$n$个点与$\frac{n(n-1)}{2}$条有向边构成的任意有向图。

注意:不存在两个元素大小相等的情况。

你可以通过调用bool类型的函数compare来获得两个元素之间的大小关系。

// 如果第i号元素小于第j号元素 返回true
// 反之 返回false
bool compare(int i, int j);

你必须通过不超过$10000$次函数调用来将这$n$个元素排成一行,使得每个元素都小于右边与它相邻的元素。

【实现细节】

选手不需要,也不应该实现main函数。

选手应确保提交的程序包含头文件business.h,可以在开头加入以下代码实现。

#include "business.h"
选手需要实现如下函数:
void special_sort(int a[], int n)

·数组$a[1:n]$用于存储排序后$n$个元素的编号,传入时其内部没有数据。

·$n$表示有$n$个元素,编号为$1\sim n$。

【数据规模与约定】

$n\leq 1000$

【注意】

评测时必须使用文件输入输出评测机。