ohhh...i misread the read....blunder...anyways thnx for pointing it out
--

Amol Sharma
Third Year Student
Computer Science and Engineering
MNNIT Allahabad




On Tue, Aug 2, 2011 at 7:14 PM, amit karmakar <amit.codenam...@gmail.com>wrote:

> Do you understand the problem properly ?
> From your code it seems you don't understand the problem.
> Can you explain the approach that you have implemented?
>
> On Aug 2, 5:13 pm, Amol Sharma <amolsharm...@gmail.com> wrote:
> > anyone ??
> > --
> >
> > Amol Sharma
> > Third Year Student
> > Computer Science and Engineering
> > MNNIT Allahabad
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Aug 2, 2011 at 1:57 PM, Amol Sharma <amolsharm...@gmail.com>
> wrote:
> > > hi,
> >
> > > i attempted the problem  http://www.spoj.pl/problems/GSS1/
> >
> > > i have the solved the problem using segment trees.....i have the
> checked my
> > > solution for the most of the cases it is working fine.....but i am
> getting
> > > WA.......plz tell any case where my code fails !!.....please point out
> the
> > > bug if any in the code
> >
> > > #include<stdio.h>
> > > //                                SEGEMENT TREE
> > > // this program will make a segment tree of a given array and then
> perform
> > > the queries on it as asked in the question fo any range
> >
> > > //starting with the function to ionitialise the segement tree
> >
> > > //                        INTIALIZATION
> > > void initialize(int node, int b, int e, int M[], int A[])
> > > {
> > >    if (b == e)
> > >        M[node] = A[b];
> > >    else
> > >   {
> > > //compute the values in the left and right subtrees
> > >        initialize(2 * node, b, (b + e) / 2, M, A);
> > >        initialize(2 * node + 1, (b + e) / 2 + 1, e, M, A);
> > > //search for the minimum value in the first and
> > > //second half of the interval
> > >        if (M[2 * node] >= M[2 * node + 1])
> > >             M[node] = M[2 * node];
> > >        else
> > >             M[node] = M[2 * node + 1];
> > >    }
> > > }
> >
> > > //function for doing query on the segement tree
> > > //                            QUERY
> >
> > > int query(int node, int b, int e, int M[], int A[], int i, int j)
> > > {
> > >     int p1, p2;
> >
> > > //if the current interval doesn't intersect
> > > //the query interval return -1
> > >     if (i > e || j < b)
> > >         return -1;
> >
> > > //if the current interval is included in
> > > //the query interval return M[node]
> > >     if (b >= i && e <= j)
> > >         return M[node];
> >
> > > //compute the minimum position in the
> > > //left and right part of the interval
> > >     p1 = query(2 * node, b, (b + e) / 2, M, A, i, j);
> > >     p2 = query(2 * node + 1, (b + e) / 2 + 1, e, M, A, i, j);
> >
> > > //return the position where the overall
> > > //minimum is
> > >     if (p1 == -1)
> > >         return /*M[node] =*/ p2;
> > >     if (p2 == -1)
> > >         return /*M[node] =*/ p1;
> > >     if (p1 >= p2)
> > >         return /*M[node] =*/ p1;
> > >     return /*M[node] =*/ p2;
> > > }
> >
> > > int A[50000]={0},M[100000]={-1};
> >
> > > int main()
> > > {
> > >     int n,i,j,tc;
> > >     scanf("%d",&n);//now number of elements in the array is known
> > >     for(i=0;i<n;i++)
> > >         scanf("%d",&A[i]);
> >
> > >     //initialize your segement tree now
> >
> > >    initialize(1,0,n-1,M,A);
> >
> > > /*    for(i=0;i<2*n;i++)
> > >             printf("%d  ",M[i]);
> > >        printf("\n");
> > >     */
> > >     //perform the queries here
> > >    scanf("%d",&tc);
> > >     while(tc--)
> > >     {
> > >         scanf("%d%d",&i,&j);
> > >         //perform the query for each interval
> > >        printf("%d\n",query(1,0,n-1,M,A,i-1,j-1));
> >
> > >         //print the maximun value here
> > >     }
> >
> > > return 0;
> > > }
> >
> > > Amol Sharma
> > > Third Year Student
> > > Computer Science and Engineering
> > > 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 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