运算符号
题号:NC248192
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小松鼠来到了学校,开始学习运算符号!

小松鼠对减法和取模很感兴趣,他想问一些问题。
t 次询问,每次给出 n,有如下两个操作可供选择:
  1. 选择一个整数 x,满足 ,将 n 变成 n-x,即
  2. 选择一个整数 x,满足 ,将 n 变成 ,即
定义一次操作的代价为选择的 x 的大小。
问使 n 变为 0 的最小操作代价。

由于比赛中的一些题读入量较大,请使用较快的读入输出方式,这里提供快速读入输出模板:
#include<bits/stdc++.h>
using namespace std;

inline int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c<='9'&&c>='0'){
		x=(x<<1)+(x<<3)+(c^48);
		c=getchar();
	}
	return x*f;
}

void print(int x){
	if(x<0)putchar('-'),x=-x;
	if(x>9)print(x/10);
	putchar(x%10^48);
}

int a,b;

int main(){
	a=read(),b=read();
	print(a+b);
	return 0;
}


输入描述:

第一行输入一个数 ,表示询问次数。
之后 t 行每行一个数 ,表示每次需要变为 0 的数。

输出描述:

一共 t 行,每行一个数表示最小操作代价。
示例1

输入

复制
1
3

输出

复制
3

说明

使用一次操作 2,选择 x=3 即可,最小代价为 3