bool add(int a, int b, bool odd) { if (! map.isExist(b) ) { map.addValue(b, a, odd); } int i = map.getPrev( b ); if (i == a) return map.getOdd(b) == odd; if(i < a) return add (i, a-1, odd != map.getOdd(b)); return add (a, i-1, odd != map.getOdd(b)); }