Cod sursa(job #2412050)

Utilizator EckchartZgarcea Robert-Andrei Eckchart Data 21 aprilie 2019 16:37:47
Problema Jocul Flip Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 1.71 kb
q, j, total_s, commuted_columns_s, commuted_rows_s, columns_s, rows_s = 2, 2, 0, 0, 0, 0, 0

with open("flip.in", "r") as fisierIN:
    lines = fisierIN.readlines()
    N = int(lines[0])
    M = int(lines[1])

    # COLUMNS:
    # Only checking which columns we should commute!
    while j < M + 2:
        # THE (COMMUTED OR NOT) SUM OF THE COLUMNS.
        for k in range(j, len(lines), M):
            columns_s += int(lines[k])
        # print("columns_s is:", columns_s)
        if columns_s < 0:
            commuted_columns_s += abs(columns_s)
            # columns_s = 0
           # j += 1
            # continue
        total_s += columns_s
       # print("total_s is:", total_s)
        columns_s = 0
        j += 1

   # print(total_s)
    # ROWS:
    # Only checking which rows we should commute!
    while q < len(lines):
        for i in range(q, q + M):
            rows_s += int(lines[i])
        if rows_s < 0:
            commuted_rows_s += abs(rows_s)
            rows_s = 0
            q += M
            continue
       # total_s += rows_s
        rows_s = 0
        q += M
    # print(commuted_columns_s, commuted_rows_s)

# print(total_s - z)
# print("columns_s is:", columns_s, "|", "rows_s is:", rows_s, "|", "total_s is:", total_s)

with open("flip.out", "w") as fisierOUT:
    if total_s < 0:
        fisierOUT.write(str(abs(total_s)))
    else:
        fisierOUT.write(str(total_s + 2*(commuted_columns_s + commuted_rows_s)))

# i + 1 -> columns
# i - 1 -> rows
# WE SHOULD PROBABLY **FIRST** CHECK WHICH ROWS OR/AND COLUMNS WE COMMUTE.
# Check for N = M = 1 too.

# -
# 5
# 3
# 4
# -2
# 2
# 3
# -1
# 5
# 2
# 0
# -3
# 4
# 1
# -3
# 5
# -3
# 2
# -