static int conv (int p, int n, int lgn)\r
\r
{ int t = n+1-(1<<lgn);\r
- if (p < t) return p;\r
- return (p<<1)-t;\r
+ return (p < t) ? p : (p<<1)-t;\r
}\r
\r
static int unconv (int p, int n, int lgn)\r
\r
{ int t = n+1-(1<<lgn);\r
- if (p < t) return p;\r
- return (p+t)>>1;\r
+ return (p < t) ? p : (p+t)>>1;\r
}\r
\r
int readResult (results R, int p) // returns 0 or 1\r
{ int answ;\r
if (((p+1)<<1) > R.n) return -1; // next(last), p+1 out of bounds\r
answ = nextLarger(R.tree,R.n,conv(p+1,R.n,R.lgn),0,R.lgn);\r
- if (answ == -1) return -1;\r
- return unconv(answ,R.n,R.lgn);\r
+ return (answ == -1) ? -1 : unconv(answ,R.n,R.lgn);\r
}\r
\r
// Naively implemented by kim\r