| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1357160 | 12345678 | Painting Walls (APIO20_paint) | C++20 | 43 ms | 7044 KiB |
#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
const int nx=2e4+5, mx=2e3+5, kx=1e5+5;
int dp[2][mx], mn[nx];
vector<int> g[kx];
int minimumInstructions(int N, int M, int K, std::vector<int> C, std::vector<int> A, std::vector<std::vector<int>> B) {
for (int i=0; i<M; i++) for (auto x:B[i]) g[x].push_back(i);
for (int i=0; i<N; i++)
{
int c=i%2, p=1-c;
for (int j=0; j<M; j++) dp[c][j]=1e9;
for (auto idx:g[C[i]])
{
if (i==0) dp[c][idx]=i;
else
{
if (dp[p][(idx-1+M)%M]==1e9) dp[c][idx]=i;
else dp[c][idx]=dp[p][(idx-1+M)%M];
}
}
mn[i]=1e9;
for (int j=0; j<M; j++) mn[i]=min(mn[i], dp[c][j]);
}
int l=M-1, r=M-1, ans=0;
while (l<N)
{
for (int i=r; i>=l; i--)
{
if (mn[i]<=i-M+1)
{
l=i+1, r=i+M, ans++;
break;
}
if (i==l) return -1;
}
}
return ans;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
