Submission #720177

#TimeUsernameProblemLanguageResultExecution timeMemory
720177vjudge1JJOOII 2 (JOI20_ho_t2)C++17
0 / 100
2079 ms292 KiB
#include<bits/stdc++.h>
using namespace std;

int n,k;
bool chk=true;
string s,subj,subo,subi;

int solve(int cnt){
  int so=s.find(subo),sj=s.find(subj),si=s.find(subi);
  if(so<n&&so>=0&&sj<n&&sj>=0&&si<n&&si>=0&&sj<so&&so<si){chk=false;return cnt;}
  if(s.size()<k*3)return 1e6;
  int ans=1e6;
  char c=s[0];
  s.erase(s.begin());
  ans=min(ans,solve(cnt));
  s=c+s;
  c=s[s.size()-1];
  s.erase(s.size()-1,1);
  ans=min(ans,solve(cnt));
  s+=c;
  for(int i=1; i<s.size()-1; i++){
    string s1,s2;
    for(int j=0; j<i; j++)s1+=s[j];
    for(int j=i+1; j<s.size(); j++)s2+=s[j];
    c=s[i];
    s.erase(s.begin()+i);
    ans=min(ans,solve(cnt+1));
    s=s1+c+s2;
  }
  return ans;
}

int main(){
  ios_base::sync_with_stdio(0),cin.tie(0);
  cin >> n >> k >> s;
  for(int i=1; i<=k; i++){
    subj+="J";
    subo+="O";
    subi+="I";
  }
  int x=solve(0);
  if(chk)cout << -1;
  else cout << x;

  return 0;
}

Compilation message (stderr)

ho_t2.cpp: In function 'int solve(int)':
ho_t2.cpp:11:14: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   11 |   if(s.size()<k*3)return 1e6;
      |      ~~~~~~~~^~~~
ho_t2.cpp:21:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |   for(int i=1; i<s.size()-1; i++){
      |                ~^~~~~~~~~~~
ho_t2.cpp:24:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(int j=i+1; j<s.size(); j++)s2+=s[j];
      |                    ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...