#AAA1002. A+B Problem 交互版 1

A+B Problem 交互版 1

时间限制: 1.0 秒

空间限制: 512 MB

虽然但是,本题时空限制没什么用,且本题只支持 C++ 完成。DSA 辅助练习也只允许使用 C++ 提交。

题目描述

给定两个非负整数 aabb,输出他们的和。

交互方式

这是一道函数式交互题,不需要选手考虑输入输出,也不要从标准输入读入数据,或将任何内容输出到标准输出,否则会影响判题。

你提交的代码需要包含头文件 plus.h

你需要实现一个函数 int add(int, int),传入参数是两个 int 类型整数 a,ba,b;返回值见题目描述,为 a+ba+b

你可以调用函数 int inc(int),传入参数是一个整数 xx,返回值是 x+1x+1

你可以调用函数 int dec(int),传入参数是一个整数 xx,返回值是 x1x-1

以下我们给出一个代码提交实例(会固定返回答案 114514,仅作为示例,不保证能得分):

#include "plus.h"
int add(int a, int b)
{
    return 114514;
}

你不需要,也不应该,实现主函数。

白盒交互库实例

具体请见附加文件区的 interactor.ccplus.h。需要注意的是,该白盒交互库并非实际评测使用的交互库

如果你本地的实现代码为 main.cc,则将交互库放在同一目录下,在 Linux 系统中输入以下命令行即可运行:

g++ main.cc interactor.cc -Wall -std=c++20 -o foo -lm -O2 -I/include

在 Windows 下会生成 foo.exe,在 Linux 下会生成 foo,你可以输入 .\foo.exe 或者 ./foo 命令行执行该文件。或者将交互库接口与你实现的函数统一在单代码文件中进行本地调试即可。

1 2
3

样例 1 解释

该样例遵循白盒交互库的形式。

输入两个整数,输出他们的和,直接在标准输出判断你的计算结果是否正确。

子任务

对于所有数据,保证 1a,b1041\le a,b\le 10^4

提示

这类函数式交互题一般在 DSA OJ 的《数据结构》编程作业当中出现,在信息学竞赛的 APIO、IOI 等国际比赛当中也是统一使用这种交互题形式。

我们在为清华 826 考研同学出《数据结构》编程辅助练习的时候,为了给让大家手动实现算法,或者对算法提出强制的在线处理/更优复杂度等需求,都会使用这种方式。

后续出现的交互问题可能比较复杂,直接手写而不做 debug 也很难一次性写对,因此我们推荐使用题目给定的白盒交互库进行本地调试。可以按照对应 g++ 指令进行运行(最推荐),或者丢给 Visual Studio 拼成一个完整工程文件,又或者将所有文件拼成一个单文件进行调试。

需要注意的是,实际评测使用的交互库不一定与之相同,因此只能在本地进行这种测试。

在 DSA 辅助练习当中,一部分题目会给你对应的示范交互库以及交互方式,但是也只是作为你实现代码的框架示范,实际评测会使用另一套交互库,避免被攻击,或被选手以不正当手段通过题目。