#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;
}

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

子任务

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

提示

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

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

后续出现的交互问题可能比较复杂,直接手写而不做 debug 也很难一次性写对,因此我们推荐一种手动补全主函数并进行 debug 的方法(每个交互题使用函数的地方都不一样,需要自己去考虑)。

对于本题而言,我们只需要能求 A+B 即可,可以提供我们使用的函数有 incdec,因此我们可以将上面的交互文件头去掉,自己手动实现 incdec 以及主函数,并在本地利用单文件进行脱机调试。

#include <stdio.h>
// 本地单文件调试先把这个去掉,最后再把它加上
// #include "plus.h"
// 手动实现 add 和 dec 查看效果,提交时记得把两个函数注释掉
int add(int x) { return x + 1; }
int dec(int x) { return x - 1; }
int add(int a, int b)
{
    // todo:实现该函数
}
// 手动实现主函数,查看一下效果,提交时记得把主函数注释掉
int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d\n", add(a, b));
}

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

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