Tit for Tat #717 Div.2
5239 ワード
https://codeforces.com/contest/1516/problem/A
1秒、256 MBメモリ
input : t (1≤t≤20) n k(2≤n≤100 , 1≤k≤10000) a1 , a2, …, an (0≤ai≤100) output : print the lexicographically smallest array you can obtain 条件: An array x is lexicographically smaller 辞書では、辞書の順序を意味し、各配列を辞書の順序で並べることができます. アルファベット順に表示するには、配列内の各要素を比較するときに、同じidx内の要素に差がある必要があります.正解リストの場合、前に元のリストよりも小さい値がある必要があります.
たとえば、3 1 4と入力すると、2 1 5はアルファベット順に前に表示されます.
idxに存在する値が
while文の条件に注意しましょう.
正解コードの場合はn-1要素を追加し続けます...条件には100以下の条件があり、この場合も例外処理が必要である.
1秒、256 MBメモリ
input :
たとえば、3 1 4と入力すると、2 1 5はアルファベット順に前に表示されます.
k
回繰り返し、配列長はn
回を超えてはならない.idxに存在する値が
k
よりも大きい場合、k
の値を0に設定し、data[idx]
を更新し、そうでなければk
からdata[idx]
を減算し、k
を0に更新する.while文の条件に注意しましょう.
正解コードの場合はn-1要素を追加し続けます...条件には100以下の条件があり、この場合も例外処理が必要である.
import sys
t = int(sys.stdin.readline())
for i in range(t):
n, k = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split()))
idx = 0
while k > 0 and idx < n - 1:
if data[idx] < k:
data[n - 1] += data[idx]
k -= data[idx]
data[idx] = 0
else:
data[idx] -= k
data[n - 1] += k
k = 0
idx += 1
for item in data:
print(item, end=" ")
print()
Reference
この問題について(Tit for Tat #717 Div.2), 我々は、より多くの情報をここで見つけました https://velog.io/@jsin2475/Tit-for-Tat-717-Div.2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol