Submission #1365648

#TimeUsernameProblemLanguageResultExecution timeMemory
1365648nguyenkhangninh99Collecting Stamps 3 (JOI20_ho_t3)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
const int maxn = 205;
int x[maxn], t[maxn], dp[maxn][maxn][maxn][2];

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n, m; cin >> n >> m;
    for(int i = 1; i <= n; i++) cin >> x[i];
    for(int i = 1; i <= n; i++) cin >> t[i];

    auto cost = [&](int l, int r){
        return min(x[r] - x[l], m - x[r] + x[l]);
    };


    memset(dp, 0x3f, sizeof(dp));
    int inf = dp[0][0][0][0];
    dp[0][n + 1][0][0] = dp[0][n + 1][0][1] = 0;
    x[n + 1] = m;

    for(int l = 0; l <= n; l++){
        for(int r = n + 1; r >= l + 1; r--){
            for(int k = l + n + 1 - r; k >= 0; k--){
                for(int dir = 0; dir <= 1; dir++){
                    if(dp[l][r][k][dir] == inf) continue;  
                    dp[l + 1][r][k][0] = min(dp[l + 1][r][k][0], dp[l][r][k][dir] + (dir == 0 ? cost(l, l + 1) : cost(l + 1, r)));
                    dp[l][r - 1][k][1] = min(dp[l][r - 1][k][1], dp[l][r][k][dir] + (dir == 0 ? cost(l, r - 1) : cost(r - 1, r)));
                    if(dp[l + 1][r][k][0] <= t[l + 1]) dp[l + 1][r][k + 1][0] = min(dp[l + 1][r][k + 1][0], dp[l + 1][r][k][0]);
                    if(dp[l][r - 1][k][1] <= t[r - 1]) dp[l][r - 1][k + 1][1] = min(dp[l][r - 1][k + 1][1], dp[l][r - 1][k][1]);
                }
            }
        }
    }
    
    for(int k = n; k >= 0; k--){
        for(int l = 0; l <= n; l++){
            for(int r = n + 1; r >= l + 1; r--){
                for(int dir = 0; dir <= 1; dir++){
                    if (dp[l][r][k][dir] < inf){
                        cout << k;
                        return;
                    }
                }
            }
        }
    }
}

Compilation message (stderr)

ho_t3.cpp: In function 'int main()':
ho_t3.cpp:46:25: error: return-statement with no value, in function returning 'int' [-fpermissive]
   46 |                         return;
      |                         ^~~~~~