Page 1 of 1

12908 - The book thief

Posted: Mon Apr 13, 2015 9:49 pm
by HitmanBBa
I solved this problem using Binary search O(Log n) using c++ and my time 0.825 out of 1.000 second, I think there is O(1) solution can any one help me with a topic or hint ??
thanks in advance :)

Re: 12908 - The book thief

Posted: Tue Apr 14, 2015 12:22 am
by brianfry713
My O(1) approach AC in 0.148 seconds.
n = number of pages in the book
x = forgotten page
s + x = n * (n + 1) / 2
Temporarily assume the minimum value of 1 for x, solve for n using the quadratic equation and round up, then x = n * (n + 1) / 2 - s

Re: 12908 - The book thief

Posted: Sun Jul 19, 2015 8:34 am
by crazytim
I got TLE for the first time. And I also tried the following tips for I/O:

Code: Select all

ios_base::sync_with_stdio(0);
cin.tie(0);  
But I still got TLE. Finally, I use scanf/printf instead of cin/cout, and got Accepted with 0.142s.
In my experience, the difference between these two approaches wasn't too much. I wonder why it is not true in this problem :-?

12908 - The book thief (Getting TLE)

Posted: Tue Jul 28, 2015 11:36 pm
by Adnan_Sarker
i am getting TLE with this code, can anyone tell me why i get TLE ?
i

Code: Select all

    LL n,ans,mp,p,an,N,NN;
    while(cin>>n)
    {
        if(n==0){return 0;}
        NN=n*2;
        ans=sqrt(NN);
        N=ans+5;
        for(int i=ans;i<=N;i++)
        {
            an=(i*(i+1))/2;
            if(an>=n){p=i; mp=an-n; break;}
        }
        if(mp==0){p=p+1; mp=((p*(p+1))/2)-n;}
        cout<<mp<<" "<<p<<endl;
    }

Re: 12908 - The book thief

Posted: Wed Jul 29, 2015 4:05 pm
by Adnan_Sarker
Yes i got it. its a realy so nice & simple problem. oj give me TLE using for cin && cout.
by the way, i got ac :wink: