- public int matchInternal(int pos,Pthings pt) {\r
- sm.next = super.getNext();\r
- if(pt.marks == null) {\r
- int n2 = 2 * pt.nMarks+2;\r
- pt.marks = new int[n2];\r
- for(int i=0;i<n2;i++)\r
- pt.marks[i] = -1;\r
- }\r
- pt.marks[id] = pos;\r
- int ret = super.matchInternal(pos,pt);\r
- if(ret < 0)\r
- pt.marks[id] = -1;\r
- else if(pt.marks[id] > pt.marks[id+pt.nMarks]) {\r
- int swap = pt.marks[id];\r
- pt.marks[id] = pt.marks[id+pt.nMarks]+1;\r
- pt.marks[id+pt.nMarks] = swap+1;\r
- }\r
- return ret;\r
+ else if (pt.marks[id] > pt.marks[id + pt.nMarks])\r
+ {\r
+ int swap = pt.marks[id];\r
+ pt.marks[id] = pt.marks[id + pt.nMarks] + 1;\r
+ pt.marks[id + pt.nMarks] = swap + 1;\r