Submission #367355

# Submission time Handle Problem Language Result Execution time Memory
367355 2021-02-16T23:34:21 Z lookcook Growing Vegetable is Fun 3 (JOI19_ho_t3) C++17
0 / 100
500 ms 1048576 KB
#include <bits/stdc++.h>

#define int long long

using namespace std;

int dp[3][70][70][70][70]; // 0 = r, 1 = g, 2 = y
int n;
vector<int> r, g, y;

int rec(int pos, int rp, int gp, int yp, int lst) {
    if (pos == n) return 0;
    if (dp[lst][pos][rp][gp][yp] != -1) return dp[lst][pos][rp][gp][yp];
    int res = 1e18;
    if (r.size()!=rp && lst!=0) res = min(res, rec(pos+1, rp+1, gp, yp, 0) + abs(r[rp]-pos));
    if (g.size()!=gp && lst!=1) res = min(res, rec(pos+1, rp, gp+1, yp, 1) + abs(g[gp]-pos));
    if (y.size()!=yp && lst!=2) res = min(res, rec(pos+1, rp, gp, yp+1, 2) + abs(y[yp]-pos));
    dp[lst][pos][rp][gp][yp] = res;
    return res;
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    for (int i = 0; i < 3; i++)
        for (int a = 0; a < 70; a++)
            for (int b = 0; b < 70; b++)
                for (int c = 0; c < 70; c++)
                    for (int d = 0; d < 70; d++)
                        dp[i][a][b][c][d] = -1;
    string s;
    cin >> n >> s;
    for (int i = 0; i < n; i++) {
        if (s[i] == 'R') r.push_back(i);
        if (s[i] == 'G') g.push_back(i);
        if (s[i] == 'Y') y.push_back(i);
    }
    int res = min(rec(0,0,0,0,1),rec(0,0,0,0,0));
    if (res == 1e18) cout << "-1\n";
    else cout << res/2 << '\n';
}

Compilation message

joi2019_ho_t3.cpp: In function 'long long int rec(long long int, long long int, long long int, long long int, long long int)':
joi2019_ho_t3.cpp:15:17: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   15 |     if (r.size()!=rp && lst!=0) res = min(res, rec(pos+1, rp+1, gp, yp, 0) + abs(r[rp]-pos));
      |         ~~~~~~~~^~~~
joi2019_ho_t3.cpp:16:17: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   16 |     if (g.size()!=gp && lst!=1) res = min(res, rec(pos+1, rp, gp+1, yp, 1) + abs(g[gp]-pos));
      |         ~~~~~~~~^~~~
joi2019_ho_t3.cpp:17:17: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   17 |     if (y.size()!=yp && lst!=2) res = min(res, rec(pos+1, rp, gp, yp+1, 2) + abs(y[yp]-pos));
      |         ~~~~~~~~^~~~
# Verdict Execution time Memory Grader output
1 Correct 320 ms 564408 KB Output is correct
2 Correct 320 ms 564200 KB Output is correct
3 Correct 324 ms 564204 KB Output is correct
4 Correct 320 ms 564204 KB Output is correct
5 Correct 326 ms 564204 KB Output is correct
6 Correct 339 ms 564356 KB Output is correct
7 Correct 324 ms 564204 KB Output is correct
8 Correct 324 ms 564204 KB Output is correct
9 Correct 322 ms 564204 KB Output is correct
10 Correct 321 ms 564204 KB Output is correct
11 Incorrect 322 ms 564224 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 320 ms 564408 KB Output is correct
2 Correct 320 ms 564200 KB Output is correct
3 Correct 324 ms 564204 KB Output is correct
4 Correct 320 ms 564204 KB Output is correct
5 Correct 326 ms 564204 KB Output is correct
6 Correct 339 ms 564356 KB Output is correct
7 Correct 324 ms 564204 KB Output is correct
8 Correct 324 ms 564204 KB Output is correct
9 Correct 322 ms 564204 KB Output is correct
10 Correct 321 ms 564204 KB Output is correct
11 Incorrect 322 ms 564224 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 323 ms 564204 KB Output is correct
2 Execution timed out 1006 ms 1048576 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 320 ms 564408 KB Output is correct
2 Correct 320 ms 564200 KB Output is correct
3 Correct 324 ms 564204 KB Output is correct
4 Correct 320 ms 564204 KB Output is correct
5 Correct 326 ms 564204 KB Output is correct
6 Correct 339 ms 564356 KB Output is correct
7 Correct 324 ms 564204 KB Output is correct
8 Correct 324 ms 564204 KB Output is correct
9 Correct 322 ms 564204 KB Output is correct
10 Correct 321 ms 564204 KB Output is correct
11 Incorrect 322 ms 564224 KB Output isn't correct
12 Halted 0 ms 0 KB -