@saurabh: ya u checked tat... then ur logic seems rite.. On Sun, Jun 12, 2011 at 2:27 PM, nicks <crazy.logic.k...@gmail.com> wrote:
> @keyan...that solves my problem...got AC...thanks :) > > > On Sun, Jun 12, 2011 at 1:15 AM, nicks <crazy.logic.k...@gmail.com> wrote: > >> forgot to attach the code...here is the modified code.. >> >> #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); >> } >> } >> } >> >> sort(a2.begin(),a2.end()); >> vector<int>::iterator itr; >> for(itr=a1.begin();itr!=a1.end();itr++) >> { >> value=*itr; >> //ans+=count(a2.begin(),a2.end(),value); >> >> >> ans+=upper_bound(a2.begin(),a2.end(),value)-lower_bound(a2.begin(),a2.end(),value); >> } >> >> printf("%d",ans); >> return 0; >> } >> >> >> >> >> >> >> On Sun, Jun 12, 2011 at 1:07 AM, nicks <crazy.logic.k...@gmail.com>wrote: >> >>> @keyan..your advice was really very helpful...the time limit has come >>> under control ...1.4s but now i am getting WA though my code is giving right >>> ans for the test cases...can you plz help me in figuring out where it fails >>> .. >>> >>> >>> On Sun, Jun 12, 2011 at 12:59 AM, keyan karthi < >>> keyankarthi1...@gmail.com> wrote: >>> >>>> >>>> hint: u ve commented some vital part of ur code ;) >>>> >>>> On Sun, Jun 12, 2011 at 12:46 PM, saurabh singh <saurab...@gmail.com>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 < >>>>> keyankarthi1...@gmail.com> 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 >>>>>> <crazy.logic.k...@gmail.com>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 < >>>>>>> saurab...@gmail.com> 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 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. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> 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 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.