Submission #978944

#TimeUsernameProblemLanguageResultExecution timeMemory
978944irmuunGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++17
20 / 100
1006 ms504 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int dist(string s,string t){//t->s int res=0; for(int i=0;i<s.size();i++){ for(int j=i;j<t.size();j++){ if(t[j]==s[i]){ for(int k=j-1;k>=i;k--){ res++; swap(t[k],t[k+1]); } break; } } } return res; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; string s; cin>>s; string t=s; sort(all(t)); if(t.back()!='Y'){ int r=0,g=0; for(int i=0;i<n;i++){ if(s[i]=='R') r++; else g++; } if(abs(r-g)>1){ cout<<-1; return 0; } string a="",b=""; for(int i=0;i<min(r,g);i++){ a+='R'; a+='G'; b+='G'; b+='R'; } if(r==g){ cout<<min(dist(a,s),dist(b,s)); } if(r==g+1){ a+='R'; cout<<dist(a,s); } if(g==r+1){ b+='G'; cout<<dist(b,s); } return 0; } int ans=1e9; do{ bool ok=true; for(int i=1;i<n;i++){ if(t[i-1]==t[i]){ ok=false; } } if(!ok) continue; ans=min(ans,dist(t,s)); }while(next_permutation(all(t))); if(ans==1e9) ans=-1; cout<<ans; }

Compilation message (stderr)

joi2019_ho_t3.cpp: In function 'int dist(std::string, std::string)':
joi2019_ho_t3.cpp:14:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for(int i=0;i<s.size();i++){
      |                 ~^~~~~~~~~
joi2019_ho_t3.cpp:15:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |         for(int j=i;j<t.size();j++){
      |                     ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...