- if (go[i] < 0 && rev[i] == rev[s] && i - s == p[s] - p[i])
- components.push_back(Component(-p[s],-p[i],os[s]));
+ if (go[i] < 0 && rev[i] == rev[s] && static_cast<Gene>(i - s) == p[s] - p[i])
+ components.push_back(Component(-p[s],-p[i],(s+1 == i ? 0 : os[s])));