Submission #1202850

#TimeUsernameProblemLanguageResultExecution timeMemory
1202850ezzzayPainting Walls (APIO20_paint)C++20
0 / 100
1593 ms5836 KiB
#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;
	map< pair<int,int> ,bool> mp;
	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]);
				}
			}
			q.pb(q.front());
			q.pop_front();
		}
	}
	if(dp[N]==1e9)return -1;
	else return dp[N];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...