
python
import sys
s = input()
print(''.join(sorted(s)))

python
import sys
def solve():
input_data = sys.stdin.buffer.read().split()
idx = 0
T = int(input_data[idx]); idx += 1
out = []
for _ in range(T):
N = int(input_data[idx]); idx += 1
M = int(input_data[idx]); idx += 1
a = []
for i in range(N):
row = []
for j in range(M):
row.append(int(input_data[idx])); idx += 1
a.append(row)
# 转置优化:让列数较小(状态位数少)
if M > N:
a = [list(row) for row in zip(*a)]
N, M = M, N
# 生成所有合法行状态(行内无左右相邻 1)
states = []
for s in range(1 << M):
if (s & (s << 1)) == 0:
states.append(s)
S = len(states)
# 预计算每一行每个状态的和
# row_sum[i][k] = 第 i 行按 states[k] 选中的数字和
row_sum = []
for i in range(N):
sums = [0] * S
for k in range(S):
s = states[k]
total = 0
for j in range(M):
if s & (1 << j):
total += a[i][j]
sums[k] = total
row_sum.append(sums)
# 预计算兼容关系:compat[k] = 与 states[k] 兼容的上一行状态下标列表
compat = [[] for _ in range(S)]
for k in range(S):
s = states[k]
for t_idx in range(S):
t = states[t_idx]
if (t & s) == 0 and (t & (s << 1)) == 0 and (t & (s >> 1)) == 0:
compat[k].append(t_idx)
# DP
dp = row_sum[0][:] # 第 0 行
for i in range(1, N):
ndp = [0] * S
for k in range(S):
best = 0
for t_idx in compat[k]:
if dp[t_idx] > best:
best = dp[t_idx]
ndp[k] = best + row_sum[i][k]
dp = ndp
out.append(str(max(dp)))
sys.stdout.write("\n".join(out))
if __name__ == "__main__":
solve()

python
import sys
def solve():
data = sys.stdin.buffer.read().split()
idx = 0
N = int(data[idx]); idx += 1
M = int(data[idx]); idx += 1
C = []
for i in range(N):
v = int(data[idx]); idx += 1
C.append(v * v)
C.sort()
ans = float('inf')
for i in range(N - M + 1):
diff = C[i + M - 1] - C[i]
if diff < ans:
ans = diff
print(ans)
if __name__ == "__main__":
solve()