Code Viblo 2-1=0???

Đề bài

An đang chơi một trò chơi với các con số.

An có n số nguyên dương: x_1,x_2,..,x_n, Anh ấy có thể thực hiện hành động dưới đây bao nhiêu lần tùy thích: Chọn hai vị trí i và j sao cho x_j < x_ix và thực hiện phép toán x_i = x_i - x_j . Mục tiêu là để cho tổng tất cả các số nhỏ nhất có thể. Hãy giúp An tìm tổng nhỏ nhất đó.

Input
Dòng đầu là số n (2 ≤ n ≤ 100). Dòng thứ hai là n số nguyên: x_1,x_2,…,x_n(1 ≤ x_i ≤ 100).

Output
Tổng nhỏ nhất sau khi thực hiện các hành động

Resource limits
Execution time: 2 seconds

Memory: 256.00 MB

Đáp án

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import sys

input_str = ""
first = True
for line in sys.stdin:
if first:
first = False
else:
arr = list(map(int, line.split()))
min_store = arr[0]

checker = True
while checker:
checker = False
for index, item in enumerate(arr):
if item != 0:
if item != min_store:
checker = True
if item < min_store:
min_store = item
if item % min_store != 0:
arr[index] = item % min_store
min_store = arr[index]
else:
arr[index] = min_store
print(sum(arr))