#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define ll long long
int minimumInstructions(int N, int M, int K, std::vector<int> C, std::vector<int> A, std::vector<std::vector<int>> B ) {
vector<int>dp(N+2);
for(int i=0;i<=N;i++){
dp[i]=1e9;
}
deque<int>q;
for(int i=0;i<M;i++)q.pb(i);
dp[0]=0;
vector< vector< bool > > mp ( M+2, vector<bool> (K+5));
for(int i=0;i<M;i++){
for(auto x:B[i])mp[i][x]=1;
}
for(int i=M;i<=N;i++){
for(int j=0;j<=M;j++){
bool u=1;
for(int k=0;k<M;k++){
if( mp[q[k]] [C[i-(M-k)]] ==0){
u=0;
}
}
if(u){
dp[i]=min(dp[i],dp[i-M]+1);
for(int k=0;k<M;k++){
dp[i-k]=min(dp[i-k],dp[i]);
}
for(int i=0;i<M;i++)q.pop_back();
for(int i=0;i<M;i++)q.pb(i);
break;
}
q.pb(q.front());
q.pop_front();
}
}
if(dp[N]==1e9)return -1;
else return dp[N];
}
# | 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... |