post the logic not the code!
BTW this  problem can be done using segment trees.

http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor


On Thu, Sep 6, 2012 at 4:51 PM, bharat b <bagana.bharatku...@gmail.com>wrote:

> Its better to write an O(n) solution for this problem as the # test cases
> are very high and #elements are also very huge..
> use visited array for distinct numbers ... space--O(n).. time--O(n)
>
>
> On Sat, Aug 25, 2012 at 2:39 AM, michael miller <
> wentworth.miller6...@gmail.com> wrote:
>
>> Hi,
>> You are given N numbers. You have to perform two kinds of operations:
>> U x y - x-th number becomes equal to y.
>> Q x y - calculate the sum of distinct numbers from x-th to y-th. It means
>> that the sum for the set {1, 2, 3, 2, 7} will be equal to 13 (1+2+3+7).
>>
>> 1<=N<=50000 and
>> t is the number of test cases where   1<=t<=100000
>>
>> all numbers fit in the 32 bit integer range...
>>
>> suggest some solution..
>>
>> here is my solution
>> but it is giving wrong answer fo some unknown test case...plz suggest me
>> the test case where i am getting wrong answer....
>>
>>
>> #include<stdio.h>
>> #include<math.h>
>> int main()
>> {
>>     int list[50000],i,n,j,sum,k,l;char c;long t;
>>     scanf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html>("%d",&n);
>>     for(i=0;i<n;i++)
>>     {
>>         scanf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html>("%d",&list[i]);
>>
>>     }
>>     scanf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html>("%ld",&t);
>>
>>     t=2*t;
>>     while(t)
>>     {
>>         sum=0;
>>         scanf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html>("%c",&c);
>>
>>         fflush(stdin);
>>         scanf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html>("%d     
>>    %d",&k,&l);
>>
>>         if(c=='Q')
>>         {
>>             for(i=k-1;i<l-1;i++)
>>             {
>>                 for(j=i+1;j<l;j++)
>>                 {
>>                    if(list[i]==list[j])
>>                       break;
>>                    else if((j==l-1) &&(list[i]!=list[j]))
>>
>>                    {
>>                       sum=sum+list[i];
>>
>>                    }
>>                 }
>>              }
>>
>>              printf 
>> <http://www.opengroup.org/onlinepubs/009695399/functions/printf.html>("%d\n",sum+list[l-1]);
>>
>>          }
>>          if(c=='U')
>>          {
>>              list[k-1]=l;
>>
>>          }
>>          t--;
>>     }
>>         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 algogeeks@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscr...@googlegroups.com.
>> 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 algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>



-- 
Srikanth Reddy M
(M.Sc Tech.) Information Systems
BITS-PILANI

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

Reply via email to