cout << "Distance: " << inversionDistance(temp) << " : ";
copy(temp.begin(), temp.end(), ostream_iterator<int>(cout, " "));
cout << endl;
cout << "Distance: " << inversionDistance(temp) << " : ";
copy(temp.begin(), temp.end(), ostream_iterator<int>(cout, " "));
cout << endl;
for (size_t i = 0; i < intervals.size(); ++i){
if (intervals[i].oriented && intervals[i].first != intervals[i].second){
SortAction sa(new ReverseAction(intervals[i]));
for (size_t i = 0; i < intervals.size(); ++i){
if (intervals[i].oriented && intervals[i].first != intervals[i].second){
SortAction sa(new ReverseAction(intervals[i]));
cout << "Inversion: " << min(intervals[i].first,intervals[i].second) << ":" << max(intervals[i].first,intervals[i].second)-1 << " Score: " << score << endl;
pq.push(pair<size_t,SortAction>(score,sa));
}
cout << "Inversion: " << min(intervals[i].first,intervals[i].second) << ":" << max(intervals[i].first,intervals[i].second)-1 << " Score: " << score << endl;
pq.push(pair<size_t,SortAction>(score,sa));
}