Submission #130164

#TimeUsernameProblemLanguageResultExecution timeMemory
130164dragonslayeritGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++14
0 / 100
1052 ms2716 KiB
#include <cstdio> #include <vector> #include <algorithm> int N; char str[100005]; std::vector<int> where[100005]; const char rgy[]="RGY"; char ts[100005]; int main(){ scanf("%d %s",&N,str); for(int i=0;i<N;i++){ where[std::find(rgy,rgy+3,str[i])-rgy].push_back(i); } std::copy(str,str+N,ts); std::sort(ts,ts+N); int best=1e9; do{ int ind[3]={0,0,0}; int cost=0; bool bad=false; for(int i=1;i<N;i++){ if(ts[i]==ts[i-1]) bad=true; } if(bad) continue; for(int i=0;i<N;i++){ int c=std::find(rgy,rgy+3,ts[i])-rgy; cost+=std::max(0,i-where[c][ind[c]++]); } best=std::min(best,cost); }while(std::next_permutation(ts,ts+N)); printf("%d\n",best<1e9?best:-1); return 0; }

Compilation message (stderr)

joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:12:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %s",&N,str);
   ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...