hint: u ve commented some vital part of ur code ;) On Sun, Jun 12, 2011 at 12:46 PM, saurabh singh <[email protected]> wrote:
> > I did used the library functions but I am getting sigsegv after 0.03 s.I > cant understand why?I am presuming sumthing wrong about the implemenatation > of bsearch? > I am assuming bsearch is returning a pointer to the first found element. > > On Sun, Jun 12, 2011 at 12:41 PM, keyan karthi > <[email protected]>wrote: > >> upper_bound and lower_bound does a binary search to get count of alike >> terms.. which u tend to sum of to get the ans.. >> out of the two arrays, u need to sort one array.. this will be teh vector >> in which u do the binary search wit every element of un sorted array.. >> this is the approach i used... :) hope this helps... >> >> the above functions defined in "algorithm" >> >> >> On Sun, Jun 12, 2011 at 12:34 PM, nicks <[email protected]>wrote: >> >>> and here is my code I'm Getting TLE.... i tried to implement binary >>> search but failed bcoz how will i be able to trace the value from one vector >>> into another vector if there are any multiple occureneces of any value(i >>> mean i have count them).....in this code i i have used count of algorithm >>> which may be expensive...suggest a better way plz...thnx in advance !! >>> >>> >>> >>> #include<vector> >>> #include<iostream> >>> #include<algorithm> >>> #include<cstdio> >>> #include<cmath> >>> using namespace std; >>> int main() >>> { >>> int num,ans=0,value,i,j,k,t,a,b,c,d,e,f; >>> scanf("%d",&num); >>> vector<int> val,a1,a2; >>> for(i=0;i<num;i++) >>> { >>> scanf("%d",&t); >>> val.push_back(t); >>> } >>> for(i=0;i<num;i++) >>> { >>> a=val[i]; >>> for(j=0;j<num;j++) >>> { >>> b=val[j]; >>> for(k=0;k<num;k++) >>> { >>> c=val[k]; >>> t=a*b+c; >>> a1.push_back(t); >>> } >>> } >>> } >>> for(i=0;i<num;i++) >>> { >>> d=val[i]; >>> for(j=0;j<num;j++) >>> { >>> e=val[j]; >>> for(k=0;k<num;k++) >>> { >>> f=val[k]; >>> t=(f+e)*d; >>> a2.push_back(t); >>> } >>> } >>> } >>> >>> vector<int>::iterator itr; >>> for(itr=a1.begin();itr!=a1.end();itr++) >>> { >>> value=*itr; >>> ans+=count(a2.begin(),a2.end(),value); >>> } >>> >>> printf("%d\n",ans); >>> return 0; >>> } >>> >>> >>> >>> >>> >>> >>> On Sat, Jun 11, 2011 at 11:57 PM, saurabh singh <[email protected]>wrote: >>> >>>> >>>> OK here is my code >>>> #include<stdio.h> >>>> #include<algorithm> >>>> #include<utility> >>>> using namespace std; >>>> int compareints (const void * a, const void * b) >>>> { >>>> return ( *(long*)a - *(long*)b ); >>>> } >>>> >>>> >>>> int main() >>>> { >>>> int n,s[101],a,b,c,d,e,f; >>>> long p1[100009],p2[100009]; >>>> int i,j,k; >>>> scanf("%d",&n); >>>> for(i=0;i<n;i++) scanf("%d",&s[i]); >>>> //sort(s,s+i); >>>> k=0; >>>> for(i=0;i<n;i++) >>>> { >>>> for(j=0;j<n;j++) >>>> { >>>> for(int l=0;l<n;l++) >>>> { >>>> if(s[l]) >>>> p1[k++]=(s[i]+s[j])*s[l]; >>>> } >>>> } >>>> } >>>> //sort(p1,p1+k); >>>> int x=0; >>>> for(i=0;i<n;i++) >>>> { >>>> for(j=0;j<n;j++) >>>> { >>>> for(int l=0;l<n;l++) >>>> { >>>> //if(s[l]!=0) >>>> p2[x++]=(s[i]*s[j])+s[l]; >>>> } >>>> } >>>> } >>>> sort(p2,p2+x); >>>> long *pItem; >>>> long count=0; >>>> for(i=0;i<k;i++) >>>> { >>>> pItem = (long*) bsearch (&p1[i], p2, x, sizeof (long), >>>> compareints); >>>> if(pItem){ >>>> >>>> long *tmp=pItem; >>>> if(pItem==p2)while(*(tmp)==p1[i]&&tmp<p2+x){ >>>> count++;tmp++;} >>>> else >>>> if(pItem==(p2+(x-1))) { >>>> while(pItem>=p2&&*(pItem)==p1[i]){count++;pItem--;}} >>>> else{ >>>> tmp++; >>>> while(*(tmp)==p1[i]&&tmp<p2+x){ >>>> count++;tmp++;} >>>> >>>> while(pItem>=p2&&*(pItem)==p1[i]){count++;pItem--;} >>>> } >>>> //count++; >>>> } >>>> } >>>> printf("%ld\n",count); >>>> >>>> //for(i=0;i<k;i++) printf("%ld ",p1[i]);printf("\n"); >>>> //for(i=0;i<x;i++) printf("%ld ",p2[i]);printf("\n"); >>>> return 0; >>>> } >>>> >>>> >>>> Why is it getting segmentation fault? >>>> >>>> -- >>>> 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. >>> >> >> -- >> 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. >> > > > > -- > 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.
