Actually *fflush(stdin)* is the problem here, your reading of inputs is all
messed up, at least on my machine( and probably on the machine you are
submitting the code too).
Maybe it's working fine on your particular environment but generally
fflush() is only defined on output streams. (see this discussion -
http://stackoverflow.com/questions/2979209/using-fflushstdin )

I recommend putting one more scanf("%c", &c).
Your logic looks fine. For better runtime you might wanna use a
data-structure though.

On 18 October 2012 18:09, w.s miller <wentworth.miller6...@gmail.com> wrote:

> This code is failing only for a particular test case .can you plz suggest
> any such test case.
>
>
> On Thu, Oct 18, 2012 at 6:08 PM, w.s miller <
> wentworth.miller6...@gmail.com> wrote:
>
>> @Saurabh  kumar But i have used fflush(stdin),which flushes the standard
>> input fille. So there is nothing in stdin when i go to read the
>> character.so i dont think this is the problem.
>>
>>
>> On Wed, Oct 17, 2012 at 5:36 PM, Saurabh Kumar <srbh.ku...@gmail.com>wrote:
>>
>>> The problem is with:
>>>
>>>         scanf("%c",&c);
>>>         scanf("%d%d",&k,&l);
>>>
>>> the first scanf goes on to read the '\n' character after you enter
>>> variable 't'.
>>> Try doing:
>>>         scanf("%c",&c); // Read the '\n' or SPACE character between 't'
>>> and the next Q/U.
>>>         scanf("%c",&c); // Read the 'Q' or 'U'
>>>         scanf("%d%d",&k,&l);
>>>
>>> On 17 October 2012 17:09, w.s 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).
>>>> Input
>>>>
>>>> The first line of input contains an integer N. 1<=N<=50000
>>>> The second line consists of N numbers.
>>>> The third line consists of an integer Q. 1<=Q<=100000
>>>> The following Q lines will consist of queries of the form described in
>>>> the task description.
>>>> All numbers in input will fit in the signed 32-bit type.
>>>> Output
>>>>
>>>> Output an answer for every query of the second type.
>>>> Here is my code .But it is giving the wrong answer.Can anybody suggest
>>>> me the test cases where it is giving Wrong Answer..
>>>>
>>>> #include<stdio.h>
>>>> #include<math.h>
>>>> int main()
>>>> {
>>>>     int list[50000],i,n,j,sum,k,l;char c;long t;
>>>>     scanf("%d",&n);
>>>>     for(i=0;i<n;i++)
>>>>     {
>>>>         scanf("%d",&list[i]);
>>>>     }
>>>>     scanf("%ld",&t);
>>>>     while(t)
>>>>     {
>>>>         sum=0;
>>>>         fflush(stdin);
>>>>         scanf("%c",&c);
>>>>         scanf("%d%d",&k,&l);
>>>>
>>>>         if(c=='Q' && (k<=l))
>>>>         {
>>>>             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("%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.
>>>
>>
>>
>  --
> 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.

Reply via email to