Codeforces Round 695 A 题解

Wizard of Orz

There are $n$ digital panels placed in a straight line. Each panel can show any digit from $0$ to $9$. Initially, all panels show $0$.

Every second, the digit shown by each panel increases by $1$. In other words, at the end of every second, a panel that showed $9$ would now show $0$, a panel that showed $0$ would now show $1$, a panel that showed $1$ would now show $2$, and so on.

When a panel is paused, the digit displayed on the panel does not change in the subsequent seconds.

You must pause exactly one of these panels, at any second you wish. Then, the panels adjacent to it get paused one second later, the panels adjacent to those get paused $2$ seconds later, and so on. In other words, if you pause panel $x$, panel $y$ (for all valid $y$) would be paused exactly $|x−y|$ seconds later.

For example, suppose there are $4$ panels, and the $3$-rd panel is paused when the digit $9$ is on it.

  • The panel $1$ pauses $2$ seconds later, so it has the digit $1$;
  • the panel $2$ pauses $1$ second later, so it has the digit $0$;
  • the panel $4$ pauses $1$ second later, so it has the digit $0$.

The resulting $4$-digit number is $1090$. Note that this example is not optimal for $n=4$.

Once all panels have been paused, you write the digits displayed on them from left to right, to form an $n$ digit number (it can consist of leading zeros). What is the largest possible number you can get? Initially, all panels show $0$.

Input

The first line of the input contains a single integer $t$ ($1≤t≤100$) — the number of test cases. Each test case consists of a single line containing a single integer $n$ ($1≤n≤2⋅10^5$).

It is guaranteed that the sum of $n$ over all test cases does not exceed $2⋅10^5$.

Output

For each test case, print the largest number you can achieve, if you pause one panel optimally.

Example

input

1
2
3
2
1
2

output

1
2
9
98

Note

In the first test case, it is optimal to pause the first panel when the number $9$ is displayed on it.

In the second test case, it is optimal to pause the second panel when the number $8$ is displayed on it.

题目大意

有 $n$ 个数码管同时从 $0$ 连续变化到 $9$ 再变回 $0$ ,每秒变化一次。任意时刻都可以选择一个暂停,在一个数码管被暂停后,其左右的数码管都会在1秒后被暂停,并且这种暂停会传播,直到最终所有的数码管都暂停了。求 $n$ 个数码管情况下最大的暂停后的值。

分析

首先我们需要搞明白一件事,暂停并不是从最高位暂停就一定最大,比如当 $n=3$ 时,答案为 $987$ 吗?并不,最大值应该是 $989$ ,当第$2$位为$8$时暂停之,找找规律也能知道这是最优解,因此输出序列为 $98901234567890123…$

AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
int main() {
int t;
scanf("%d", &t);
for(int i=0; i<t; ++i) {
int n;
scanf("%d", &n);
if(n == 1) {
printf("9");
} else if(n == 2) {
printf("98");
} else if(n >= 3) {
printf("989");
int c = 0;
for(int j=0; j<n-3; ++j) {
printf("%d", c++);
if(c == 10) c = 0;
}
}
printf("\n");
}
return 0;
}

Codeforces Round 695 A 题解

https://mmdjiji.com/2021/01/1301/

作者

吉吉

发布于

2021-01-13

更新于

2022-12-10

许可协议