Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define _ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
- #define itloop(it,x) for(auto it=x.begin();it!=x.end();it++)
- #define reloop(i,e,b) for(auto i=e;i>=b;i--)
- #define loop(i,b,e) for(auto i=b;i<=e;i++)
- #define ALL(x) x.begin(),x.end()
- #define SZ(x) x.size()
- #define PB push_back
- #define MP make_pair
- #define F first
- #define S second
- typedef long long LL;
- typedef vector<int> VI;
- LL dmg(string s) {
- LL damage=1,cnt=0;
- loop(i,0,s.length()-1) {
- if(s[i] == 'S')
- cnt += damage;
- else
- damage *= 2;
- }
- return cnt;
- }
- string update(string s) {
- bool updated=false;
- reloop(i,s.length()-1,1) {
- if(s[i] == 'S' && s[i-1] == 'C') {
- swap(s[i],s[i-1]);
- updated = true;
- break;
- }
- }
- if(updated)
- return s;
- else
- return "0";
- }
- void solve(string s,LL d,int i) {
- int cnt = 0;
- if(dmg(s) <= d)
- cout << "Case #" << i << ": 0\n";
- else {
- while(s != "0" && dmg(s) > d) {
- s = update(s);
- cnt++;
- }
- if(s != "0")
- cout << "Case #" << i << ": " << cnt << "\n";
- else
- cout << "IMPOSSIBLE\n";
- }
- }
- LL t,d;
- string s;
- int main() {
- cin >> t;
- loop(i,1,t) {
- cin >> d >> s;
- solve(s,d,i);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement