Cod sursa(job #2929255)

Utilizator EasyTnsEasyTns EasyTns Data 25 octombrie 2022 13:33:06
Problema Transport Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<algorithm>
#include<vector>
#include<cstring>
#include<cmath>
//#include<iostream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int a[16005];
int cautare(long long int st,long long int dr,int n)
{
   long long  int i,step,s=0,dim=0;
    for(step=1;step<=n;step<<=1);
    for(i=0;step;step>>=1)
    {
 s=0;

for(int j=i+1;j<=n;j++)
{
   s+=a[j];
}
if(i+step<=n&&s>=st&&s<=dr)
{
    i+=step;
    dim+=s;
}
    }

    return i;
}
int main() {
    int n,p,mini=0,maxi=0;
    cin>>n>>p;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        maxi+=a[i];
        mini=max(mini,a[i]);
    }

  int j=cautare(mini,maxi,n);
    int s=0;
    for(int i=j; i<j+p;i++)
        s+=a[i];
    cout<<s;

}