Submission #927867

#TimeUsernameProblemLanguageResultExecution timeMemory
927867UnforgettableplGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++17
5 / 100
1048 ms600 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int INF = 1e15;
int n;

int calc(vector<int> arr,int start,int mask){
    vector<int> target = {start};
    for(int bit=0;bit<n;bit++){
        target.emplace_back(target.back()+1);
        if(mask&(1<<bit))target.back()++;
        target.back()%=3;
    }
    int ans = 0;
    for(int i=0;i<arr.size();i++){
        int idx = find(arr.begin()+i, arr.end(),target[i])-arr.begin();
        if(idx==arr.size())return INF;
        ans+=idx-i;
        arr.erase(arr.begin()+idx);
        arr.insert(arr.begin()+i,target[i]);
    }
    return ans;
}

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n;
    vector<int> arr;
    for(int i=1;i<=n;i++){
        char a;
        cin>>a;
        if(a=='R') arr.emplace_back(0);
        else if(a=='G') arr.emplace_back(1);
        else arr.emplace_back(2);
    }
    int ans = INF;
    n--;
    for(int start=0;start<3;start++){
        for(int mask=0;mask<(1<<n);mask++){
            ans = min(ans,calc(arr,start,mask));
        }
    }
    cout << (ans>=INF ? -1 : ans) << '\n';
}

Compilation message (stderr)

joi2019_ho_t3.cpp: In function 'long long int calc(std::vector<long long int>, long long int, long long int)':
joi2019_ho_t3.cpp:17:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for(int i=0;i<arr.size();i++){
      |                 ~^~~~~~~~~~~
joi2019_ho_t3.cpp:19:15: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |         if(idx==arr.size())return INF;
      |            ~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...