제출 #130164

#제출 시각아이디문제언어결과실행 시간메모리
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;
}

컴파일 시 표준 에러 (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...