1072021-01-12 13:32:11Babják PéterZenehallgatáscpp11Futási hiba 0/5012ms4756 KiB
#include <iostream>
#include <algorithm>
#include<vector>
#define ll long long
using namespace std;

ll subsum[100000];
int f=-1;
int bins(int e,int v,int x)
{
    if(e>=v)
    {
        return v;
    }
    int mid=(e+v)/2;
    if(subsum[mid]<x)
    {
        bins(mid+1,v,x);
    }
    else
    {
        f=mid;
        bins(e,mid,x);
    }
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);//zenehallgatás
    int  n,k;cin>>n>>k;
    short int t[n];//melyik zene meddig tart
    ll sum=0;

    cin>>t[0];sum+=t[0];
    subsum[0]=t[0];//subusm[i] megadja hogy az iedik zene mikor ér véget(az elsõ körben), megtehetõ mert 10^5*10^4=10^9, ami belefér a long long ba.
    for(int i=1;i<n;i++)
    {
        cin>>t[i];
        subsum[i]=subsum[i-1]+t[i];
    }
    for(int i=0;i<k;i++)
    {
        ll a;cin>>a;
        a=a%subsum[n-1];//az összes zene hosszával ha modulózunk,ugyanaz marad az eredmény
        bins(0,n,a);//bináris kereséssel megkeressük a legkisebb olyan dalvégzõdés idõpontot(subsumban) ami még nagyobb a-nál, ez a zene szól ebben az idõpontban,ami közvetlen a után végzõdik.
        cout<<f+1<<" ";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Futási hiba0/02ms1908 KiB
2Futási hiba0/012ms4500 KiB
3Futási hiba0/21ms2604 KiB
4Futási hiba0/21ms2684 KiB
5Futási hiba0/21ms2636 KiB
6Futási hiba0/31ms2636 KiB
7Futási hiba0/31ms2660 KiB
8Futási hiba0/31ms2752 KiB
9Futási hiba0/210ms4724 KiB
10Futási hiba0/29ms4720 KiB
11Futási hiba0/212ms4692 KiB
12Futási hiba0/212ms4676 KiB
13Futási hiba0/212ms4680 KiB
14Futási hiba0/29ms4688 KiB
15Futási hiba0/29ms4740 KiB
16Futási hiba0/29ms4728 KiB
17Futási hiba0/29ms4668 KiB
18Futási hiba0/28ms4756 KiB
19Futási hiba0/28ms4712 KiB
20Futási hiba0/28ms4688 KiB
21Futási hiba0/28ms4688 KiB
22Futási hiba0/38ms4696 KiB
23Futási hiba0/38ms4696 KiB
24Futási hiba0/38ms4688 KiB