#A1001. 从2026CSP初赛来的一小题

从2026CSP初赛来的一小题

2026CSP初赛转编程题

题目背景

在2026CSP初赛中,小杨发现有一题的代码非常适合用来出题,于是…………

题目描述

小杨扮演的小明正在玩一个数字变换游戏。游戏开始时,小明面前有一个显示屏幕和两个计数器 XX 和 YY。

屏幕上初始会显示一个非负整数 nn。只要屏幕上的数字 nn 大于 00,游戏就会按照以下规则进行回合制的变换:

  1. 无论 nn 是什么,计数器 XX 的值都会增加 11。
  2. 如果当前屏幕上的 nn 是奇数,计数器 YY 的值也会增加 11;如果 nn 是偶数,YY 的值保持不变。
  3. 结算完计数器后,屏幕上的数字 nn 会变成原来的一半(向下取整,即 n=⌊n/2⌋n = \lfloor n / 2 \rfloor)。

这个过程会一直重复,直到屏幕上的数字 nn 变为 00 时游戏结束。 请你编写一个程序,给定初始数字 nn,计算出游戏结束后计数器 XX 和 YY 的最终值。

输入格式

输入仅包含一行,一个整数 nn。

输出格式

输出一行,包含两个用空格隔开的整数,分别表示游戏结束后 XX 和 YY 的值。

样例

5
4 3

样例 1 说明: 初始状态:X=1,Y=1,n=5X=1, Y=1, n=5。

  • 第一回合:n=5>0n=5 > 0 且为奇数,XX 增加 1 变为 2,YY 增加 1 变为 2。随后 nn 变为 5/2=25 / 2 = 2。
  • 第二回合:n=2>0n=2 > 0 且为偶数,XX 增加 1 变为 3,YY 保持为 2。随后 nn 变为 2/2=12 / 2 = 1。
  • 第三回合:n=1>0n=1 > 0 且为奇数,XX 增加 1 变为 4,YY 增加 1 变为 3。随后 nn 变为 1/2=01 / 2 = 0。 此时 n=0n=0,游戏结束。最终输出 4 3。

数据范围

对于 100%100\% 的数据,0≤n≤2310 \le n \le 2^{31}。

有坑