Zadatak Ruter

Radio sam zadatak ruter i pretpostavio sam da je neka fora ‘sliding-window’ algoritma, tj. da ne moze da ide ispod O(N). E sad, za test primere od 11-20 daje TLE. Ima li neko soluciju (nije bitan jezik). Evo mog koda, pa pogledajte.

#include <bits/stdc++.h>
using namespace std;

long long arr[10005];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    long long n;
    cin>>n;

    for(int i = 0; i < n; i++)
        cin>>arr[i];

    long long sum1 = 0;
    long long sum2 = 0;
    long long oldSum1 = 0;
    long long oldSum2 = 0;
    long long sum;


    for(int i = 1; i < n; i++)
    {
        sum2 += arr[i] * i;
        oldSum2 += arr[i];
    }

    sum = sum1 + sum2;

    for(int i = 1; i < n; i++)
    {
        oldSum1 += arr[i - 1];
        sum1 += oldSum1;

        sum2 -= oldSum2;
        oldSum2 -= arr[i];

        sum = min(sum, sum1 + sum2);
    }

    cout<<sum;
    return 0;
}

Kako ide tekst zadatka ili mozes link da das?

Evo link ka zadatku https://petlja.org/biblioteka/r/problemi/zbirka-napredni-nivo/ruter. Pokusavao sam nesto sam, medjutim ne ide. Ne verujem da je neka prevelika greska, ali opet ne vidim sta ga usporava da ode od 0.02s na preko 1s za neke test primere.

Lose je napisano ogranicenje za N u zadatku, ako povecas niz na 10^5 radi.

To je to. Hvala za pomoc! :slight_smile: