| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1339033 | hoangtien69 | Collecting Stamps 3 (JOI20_ho_t3) | C++20 | 127 ms | 132160 KiB |
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 205;
const int INF = 1e18;
int n, len;
int x[MAXN];
int t[MAXN];
int dp[MAXN][MAXN][MAXN][2];
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> len;
for (int i = 1; i <= n; i++)
{
cin >> x[i];
}
for (int i = 1; i <= n; i++)
{
cin >> t[i];
}
x[0] = 0;
x[n + 1] = len;
t[0] = -INF;
t[n + 1] = -INF;
for (int i = 0; i <= n + 1; i++)
{
for (int j = 0; j <= n + 1; j++)
{
for (int k = 0; k <= n; k++)
{
for (int l = 0; l <= 1; l++)
{
dp[i][j][k][l] = INF;
}
}
}
}
dp[0][n + 1][0][0] = 0;
dp[0][n + 1][0][1] = 0;
for (int i = 0; i <= n; i++)
{
for (int j = n + 1; j - 1 > i; j--)
{
for (int k = 0; k < n; k++)
{
for (int l = 0; l <= 1; l++)
{
if (dp[i][j][k][l] > 1e12)
{
continue;
}
if (l == 0)
{
int cur = dp[i][j][k][l] + x[i + 1] - x[i];
if (cur > t[i + 1])
{
dp[i + 1][j][k][0] = min(dp[i + 1][j][k][0], cur);
}
else
{
dp[i + 1][j][k + 1][0] = min(dp[i + 1][j][k + 1][0], cur);
}
int cur1 = dp[i][j][k][l] + len - (x[j - 1] - x[i]);
if (cur1 > t[j - 1])
{
dp[i][j - 1][k][1] = min(dp[i][j - 1][k][1], cur1);
}
else
{
dp[i][j - 1][k + 1][1] = min(dp[i][j - 1][k + 1][1], cur1);
}
}
else
{
int cur = dp[i][j][k][l] + x[j] - x[j - 1];
if (cur > t[j - 1])
{
dp[i][j - 1][k][1] = min(dp[i][j - 1][k][1], cur);
}
else
{
dp[i][j - 1][k + 1][1] = min(dp[i][j - 1][k + 1][1], cur);
}
int cur1 = dp[i][j][k][l] + len - (x[j] - x[i + 1]);
if (cur1 > t[i + 1])
{
dp[i + 1][j][k][0] = min(dp[i + 1][j][k][0], cur1);
}
else
{
dp[i + 1][j][k + 1][0] = min(dp[i + 1][j][k + 1][0], cur1);
}
}
}
}
}
}
for (int k = n; k >= 0; k--)
{
for (int i = 0; i <= n + 1; i++)
{
for (int j = 0; j <= n + 1; j++)
{
for (int l = 0; l <= 1; l++)
{
if (dp[i][j][k][l] < INF)
{
cout << k;
return 0;
}
}
}
}
}
cout << 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
