답안 #97400

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
97400 2019-02-15T17:41:10 Z kdh9949 Growing Vegetable is Fun 3 (JOI19_ho_t3) C++17
0 / 100
2 ms 384 KB
#include <bits/stdc++.h>
using namespace std;

const int N = 405, INF = int(1e9);

int n, tt[3], s[6][N], p[3][N], d[N][N][N][3];
char b[N];

int main(){
    scanf("%d%s", &n, b + 1);
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < 6; j++) s[j][i] = s[j][i - 1];
        int t = (b[i] == 'R' ? 0 : b[i] == 'G' ? 1 : 2);
        s[t][i]++;
        s[t + 3][i]++;
        p[t][tt[t]++] = i;
    }
    for(int r = tt[0]; r >= 0; r--){
        for(int g = tt[1]; g >= 0; g--){
            for(int y = tt[2]; y >= 0; y--){
                for(int l = 0; l < 3; l++){
                    int &ret = d[r][g][y][l];
                    if(r + g + y == n){ ret = 0; continue; }
                    ret = INF;
                    int a[5] = {r, g, y, r, g};
                    for(int i = 0; i < 3; i++){
                        if(i == l) continue;
                        if(a[i] + 1 > tt[i]) continue;
                        ret = min(ret,
                                d[r + (i == 0)][g + (i == 1)][y + (i == 2)][i]
                                + max(0, s[i + 1][p[i][a[i]]] - a[i + 1])
                                + max(0, s[i + 2][p[i][a[i]]] - a[i + 2]));
                    }
                }
            }
        }
    }
    int r = min({d[1][0][0][0] + p[0][0] - 1,
                 d[0][1][0][1] + p[1][0] - 1,
                 d[0][0][1][2] + p[2][0] - 1});
    if(r > INF / 2) puts("-1");
    else printf("%d\n", r);
}

Compilation message

joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:10:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%s", &n, b + 1);
     ~~~~~^~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -