- やるだけ
- なのにeraseで迷う
- 213.37 (12'12''), passed system test
- 遅いっす
class CircleGame {
public:
int cardsLeft(string deck) {
vector<int> dk;
rep(i,sz(deck)){
switch(deck[i]){
case 'K': break;
case 'A': dk.pb(1); break;
case 'T': dk.pb(10); break;
case 'J': dk.pb(11); break;
case 'Q': dk.pb(12); break;
default: dk.pb(deck[i]-'0'); break;
}
}
int l=sz(dk),ll=l+1;
while(l<ll){
rep(i,l){
if(dk[i]+dk[(i+1)%l]==13) {
if (i+1==l) {
dk.erase(dk.begin()+i);
dk.erase(dk.begin());
break;
} else {
dk.erase(dk.begin()+i+1);
dk.erase(dk.begin()+i);
break;
}
}
}
ll=l;
l=sz(dk);
}
return l;
}
};