In this problem, sum can be as large as 50000*10^9.
Try breaking the whole interval into several stages (no more than 2*N), each with a fixed amount of tasks. Then in each stage, the schedule is a simple loop: A B C D E A B C D E A B ...
Process each stage in O(1) time, then the total time complexity is O(N).


On 2011-3-21 17:32, saurabh singh wrote:
using scanf and printf and still tle,I am not pretty sure how malloc or new arrays can speed up execution?

On Mon, Mar 21, 2011 at 2:25 PM, sanchit mittal <[email protected] <mailto:[email protected]>> wrote:

    use scanf n printf instead of cin n cout,
    malloc array of structures after reading value of n if working in
    c else use new in cpp
    rest i guess...is ok
    On Sun, Mar 20, 2011 at 11:53 PM, ankit sambyal
    <[email protected] <mailto:[email protected]>> wrote:

        I worked on this problem but cud not get a more efficient algo
        than yours.
        Plz get back 2 me if u find a better algo.


        On Sun, Mar 20, 2011 at 3:24 AM, Akshata Sharma
        <[email protected] <mailto:[email protected]>>
        wrote:

            I tried to solve this problem
            https://www.spoj.pl/problems/RRSCHED/

            I am getting TLE!! How can I improve my code??

            #include<iostream>
            #include<stdio.h>

            using namespace std;

            struct process
            {
            long time;
            int finished;
            long elapsed_time;
            };

            int main()
            {
            long n,sum=0;
            cin>>n;
            struct process prss[50000];
            for(long i=0;i<n;i++)
            {
                    scanf("%ld",&prss[i].time);
                    prss[i].finished=0;
                    sum+=prss[i].time;
            }
            long index=0;
             for(long k=1;k<=sum;k++)
            {
              while(prss[index].finished==1)
              index++;

              prss[index].time--;

              if(prss[index].time==0)
              {
               prss[index].finished=1;
               prss[index].elapsed_time=k;
              }

              index++;
              if(index==n)
              index=0;
            }

            for(long i=0;i<n;i++)
            printf("%ld\n",prss[i].elapsed_time);
            return 0;
            }


-- You received this message because you are subscribed to
            the Google Groups "Algorithm Geeks" group.
            To post to this group, send email to
            [email protected]
            <mailto:[email protected]>.
            To unsubscribe from this group, send email to
            [email protected]
            <mailto:algogeeks%[email protected]>.
            For more options, visit this group at
            http://groups.google.com/group/algogeeks?hl=en.


-- You received this message because you are subscribed to the
        Google Groups "Algorithm Geeks" group.
        To post to this group, send email to
        [email protected] <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:algogeeks%[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/algogeeks?hl=en.




-- Sanchit Mittal
    Second Year Undergraduate
    Computer Engineering
    Delhi College of Engineering
    ph- +919582414494

-- You received this message because you are subscribed to the Google
    Groups "Algorithm Geeks" group.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:algogeeks%[email protected]>.
    For more options, visit this group at
    http://groups.google.com/group/algogeeks?hl=en.




--
Saurabh Singh
B.Tech (Computer Science)
MNNIT ALLAHABAD


--
You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.

--
You received this message because you are subscribed to the Google Groups "Algorithm 
Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to