Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <cstdio>
- #include <ctime>
- #include <cstdlib>
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- #include <set>
- #include <vector>
- #include <stack>
- #include <map>
- #include <string>
- #include <cstring>
- #include <queue>
- #include <utility>
- using namespace std;
- #define PB push_back
- #define sqr(x) (x)*(x)
- long long const INF= 1ll<<32;
- int price(int a,int b,int c,int len){
- int ans=0;
- if(a != 0) ans++;
- if(b-a != 1) ans++;
- if(c - b != 1) ans++;
- if(c != len -1) ans++;
- if(ans < 0) ans = 10000;
- return ans;
- }
- int main()
- {
- #ifdef HOME
- //freopen("k8.in","r",stdin);
- freopen("input.txt","r",stdin);
- //freopen("k8.out","w",stdout);
- //freopen("output.txt","w",stdout);
- #else
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- #endif
- string s;
- int p1=-1,p2=-1,p3=-1;
- vector<int> ss,ii;
- cin >> s;
- transform(s.begin(),s.end(),s.begin(),::tolower);
- for(int i=0;i<s.length();i++){
- if(s[i] == 's') ss.push_back(i);
- if(s[i] == 'i') ii.push_back(i);
- }
- //while(ii.size() > 0 && ii[0] <= ss[0]) ii.erase(ii.begin());
- if(s.length() < 3 || ss.size() < 2 || ii.size() < 1 || ii[ii.size()-1] > ss[ss.size()-1] || ii[0] < ss[0])
- puts("-1");
- else{
- int ans=1000;
- for(int i=0;i<ss.size();i++)
- for(int j=0;j<ii.size();j++)
- for(int k=i+1;k<ss.size();k++)
- ans=min(ans,price(ss[i],ii[j],ss[k],s.length()));
- printf("%d\n",ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement