This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "paint.h"
//#include<bits/stdc++.h>
//using namespace std;
const int INF = 1e9;
int eq(std::vector<int> c, int p, std::vector<std::vector<int>> b, int m)
{
int ok = 1;
for(int i = p; i < p + m; ++i)
{
int _ok = 0;
for(int j : b[i - p])
_ok |= c[i] == j;
ok &= _ok;
}
return ok;
}
void sdvig(std::vector<std::vector<int>> b, int m)
{
for(int i = 0; i < m - 1; ++i)
std::swap(b[i], b[i + 1]);
}
int minimumInstructions(int n, int m, int k, std::vector<int> c, std::vector<int> a, std::vector<std::vector<int>> b)
{
int i;
int dp[n + 5] = {};
for(i = 0; i <= n - m; ++i)
{
for(int t = 0; t < m && !dp[i]; ++t)
{
if(eq(c, i, b, m))
dp[i] = 1;
sdvig(b, m);
}
}
int ans = 1, cur = 0;
while(cur < n - m)
{
int lst = INF;
for(i = cur + 1; i <= cur + m; ++i)
if(dp[i])
lst = i;
cur = lst;
++ans;
}
// for(i = 0; i < n; ++i)
// cout << dp[i] << ' ';
// return;
return (cur < INF ? ans : -1);
}
//int main()
//{
//// ios_base::sync_with_stdio(0);
//// cin.tie(0), cout.tie(0);
//// solve();
//}
//8 3 5
//3 3 1 3 4 4 2 2
//3 0 1 2
//2 2 3
//2 3 4
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |