acmp.ru задача, python

Проблема не в логике кода а в ее упорядоченности, другими словами я написал как сделать ту или иную функцию, мне нужно чтобы он выводил правильно так, как просят на сайте acmp.ru, единственная моя проблема в том что я не понимаю принцип работы входных и выходных файлов, хоть убейте, пытаюсь как нибудь подстроиться под условия принятия файла в зеленый цвет, вот собственно этот код:

r = open('INPUT.txt', 'r')
n = r.read(1)
w = open('OUTPUT.txt', 'w')
v = 0
for i in range(0, int(n)+1, 1): #думаю здесь и обьяснять то нечего
    v += i
w.write(str(v))

Казалось бы, вот и простая истина, ну если закинуть это решение на сайт, бог знает какой компилятор его отвергнет, да и приплюнет на последок. И вот базовые условия для "корректной" формулировки кода:

Требуется посчитать сумму целых чисел, расположенных между числами 1 и N включительно.

Входные данные В единственной строке входного файла INPUT.TXT записано единственное целое число N, не превышающее по абсолютной величине 10000000.

Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел, расположенных между 1 и N включительно.

Благодарю заранее, за помощь, ибо уверен в том что бравые программисты мне помогут выпутаться из клоаки дерьма поливающегося на мои плечи, и глубоко надеюсь на вашу отзывчивую и понимающую душу.


Ответы (1 шт):

Автор решения: Qwertiy
  1. Надо читать не 1 байт, а строку.
  2. Надо прочитанное превратить в число.
  3. Используй with для работы с файлами.
  4. Там ведь наверняка есть пример, как надо писать.
  5. Всё равно этот код по времени не пройдёт.

Кстати, можно в начале файла написать

import sys
sys.stdin = open('input.txt', 'r') 
sys.stdout = open('output.txt', 'w')

и дальше пользоваться обычными input и print

→ Ссылка