A. 这是一道交互题

    交互题 5000ms 256MiB

这是一道交互题

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

本题为交互题。

本题交互库运行时间保证小于 1500 ms。

题目描述

有一个长度为 nn 的序列 AA 。你可以进行若干次询问来求出整个序列每个数的和。

有以下三种询问:

  • 查询序列中两个数按位与的结果

  • 查询序列中两个数按位或的结果

  • 输出答案。

交互格式

刚开始交互库会给你输出一个整数 nn ,表示序列的长度,你可通过读入一个整数来获得这个值。

每个询问占一行。

  • 你的程序询问 1 i j 后交互库会输出 AiA_iAjA_j 按位与的结果,你可通过读入一个整数来获得这个结果。注意,如果你的询问中 i=ji=j,该测试点你将获得 00 分。

  • 你的程序询问 2 i j 后交互库会输出 AiA_iAjA_j 按位或的结果,你可通过读入一个整数来获得这个结果。注意,如果你的询问中 i=ji=j,该测试点你将获得 00 分。

  • 你的程序询问 3 i ,交互库会判断答案是否与 ii 相等。相等会返回 AC,不相等会返回 WA。

输出询问后请刷新缓冲区,否则可能会造成 TLE。

你可以使用如下语句来清空缓冲区:

  • 对于 C/C++:fflush(stdout)
  • 可以使用 endl 作为换行,endl 会强制刷新缓冲区。
  • 其他的你也不用

评分标准

  • 如果输出正确结果,则 AC,但该点不一定获得全分,具体标准如下:
    1. 如果询问次数小于等于 n+4n+4,你可获得该测试点全部分数
    2. 如果你的询问次数大于 2n+12n+1,该测试点你获得 00 分。
    3. 如果你的询问次数大于 n+4n+4 且小于等于 2n+12n+1,你的分数为 108×dn4n310 - 8 \times \frac{d-n-4}{n-3},dd 为你的询问次数。
  • 如果询问非法,或结果错误,或次数超限,则 WA
  • 其他的与传统题一样

提示

为了防止大家不会IO式交互,我们准备了一份示例代码。

请注意,IO式交互与CCF常使用的函数式交互不同,大家在正赛时应以题目要求为准。

#include<bits/stdc++.h>
using namespace std;
int n;
signed main(){
	cin>>n;//读入序列长度。 
	/*
	1.这是一份示例代码,与正确做法无任何关联。 
	2.请使用 endl 进行换行。
	*/
	cout<<"1"<<" "<<1<<" "<<2<<endl;//第一类,查询两个数按位与。 
	int x;
	cin>>x;//读入第一个数和第二个数按位与的值。 
	cout<<"2"<<" "<<3<<" "<<4<<endl;//第二类,查询两个数的或。 
	cin>>x;//读入第三个数和第四个数按位或的值。 
	int ans=114514;
	cout<<"3 "<<ans<<endl;//第三类,输出答案。 
	return 0;
}

样例

input

3

3

0

output


2 1 2

1 1 2

3 6

解释

仅供参考。序列为 A=1,2,3A={1,2,3}.

数据范围

3n105,0Ai1093 \le n \le 10^5,0 \le A_i \le 10^9

2026-07-10

未参加
状态
已结束
规则
OI
题目
4
开始于
2026-7-10 7:30
结束于
2026-7-10 11:00
持续时间
3.5 小时
主持人
参赛人数
31