Есть простая программа на с++, ее суть заключается в том, чтобы прибавить к числу 1 и умножить число на самого себя. Однако, ее время исполнения - 2 ms, но я знаю, что можно сократить к 1 ms. Какими способами это можно сделать?
#include
int main()
{
int N;
scanf("%d",&N);
N++;
N *= N;
printf("%u",N);
Дело не в железе. Время "прокатки" программы указано на сайте сдачи задач. Сравниваю свое решение с другими и медлительность моих 2 ms с 1 ms мне покоя не дает.
EnamoredBird: Значит нет смысла гнаться за этой миллисекундой, потому что при чтении больших объемов данных вариант с std::ios::sync_with_stdio(false); работает быстрее чем scanf.
В олимпиадных задачах по программированию ограничение идет на секунды и там не заметна разница между scanf и т.п.
Используй scanf - это самый простой и надежный вариант.
Само решение задачи оптимизировать бесполезно, т.к. тут на столько все просто, что любые оптимизации дадут прирост в 1-2 процессорных инструкции, а это в любом случае будет меньше 1 млсек.
Попробуйте исполнить ваш тест несколько раз и вычислить среднее время, если это возможно.
Или вставьте в свою программу вычисление времени выполнения и больше не беспокойтесь по этому поводу: www.cplusplus.com/reference/ctime/clock/?kw=clock