Click
Here to go back to the homepage.
Closing the Loop Solution:
#include <bits/stdc++.h>
using namespace std;
int main(){
// #ifndef TESTING
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
int cases;
cin >> cases;
for(int i = 1; i < cases + 1; i++){
int segments;
cin >> segments;
priority_queue<int> reds;
priority_queue<int> blues;
for(int i = 0; i < segments; i++){
string seg;
cin >> seg;
int len = stoi(seg.substr(0, seg.length() - 1));
if(seg.at(seg.length() - 1) == 'R'){
reds.push(len);
}
else{
blues.push(len);
}
}
if(blues.size() == 0 || reds.size() == 0){
cout << "Case #" << i << ": 0" << endl;
} else {
int length = 0;
while(blues.size() > 0 && reds.size() > 0){
length += reds.top() + blues.top() - 2;
reds.pop();
blues.pop();
}
cout << "Case #" << i << ": " << length << endl;
}
}
return 0;
}