00001
00002 int my_ord(const mon & m1, const mon & m2){
00003 int n1 = lvar(m1.rep), n2 =lvar(m2.rep);
00004 cout<<"n1"<<n1;
00005 cout<<"n2"<<n2;
00006 int n = max(n1,n2),dm1=0,dm2=0,firstdiff=0,tmpdeg1,tmpdeg2;
00007
00008 if(n1 <0 && n2>0) return -1;
00009 if(n2 <0 && n1>0) return 1;
00010 for(int i=0;i<=n;i++)
00011
00012 {
00013 tmpdeg1=m1.GetDegree(i);
00014 tmpdeg2=m2.GetDegree(i);
00015 if(tmpdeg1>tmpdeg2 && firstdiff==0) firstdiff=1;
00016 if(tmpdeg2>tmpdeg1 && firstdiff==0) firstdiff=-1;
00017 dm1+=tmpdeg1;
00018 dm2+=tmpdeg2;
00019 }
00020
00021
00022 if (dm1 < dm2) return -1;
00023 else if (dm1 > dm2) return 1;
00024 return firstdiff;
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 }