Cod sursa(job #2225626)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 27 iulie 2018 18:39:35
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define Dim 100006
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long N,K,A[Dim],Dist[Dim];
long long cnt,S,lim;
bool stop=1;

int main()
{
    f>>K>>N; Dist[0]=1;
    for(int i=1;i<=N;i++)
    {
        f>>A[i];
        if(i<=N-K) S+=A[i];
        else
        {
           if(stop) cnt+=A[i];
           if(stop==0&&(A[i]-A[i-1])*Dist[lim]<=S&&A[i]-A[i-1]!=0)
            {
             cnt+=A[i]-A[i-1];
             S-=(A[i]-A[i-1])*Dist[lim];
             lim++;
             Dist[lim]=Dist[lim-1]+1;
            }
           else
            if(A[i]-A[i-1]!=0&&stop==0)
                {
                     cnt+=S/Dist[lim];
                      S=S-(S/Dist[lim])*Dist[lim];
                }
            if(A[i]==A[i-1]&&stop==0) Dist[++lim]=Dist[lim-1]+1;
           stop=0;
        }
    }
    cnt+=S/K;
    g<<cnt;
    return 0;
}