Submission #597598

# Submission time Handle Problem Language Result Execution time Memory
597598 2022-07-16T11:19:38 Z cfalas Painting Walls (APIO20_paint) C++17
0 / 100
1500 ms 212 KB
#include<bits/stdc++.h>
using namespace std;
#include "paint.h"
#define mp make_pair
#define INF 10000000
#define MOD 1000000007
#define MID ((l+r)/2)
#define HASHMOD 2305843009213693951
#define ll long long
#define ull unsigned long long
#define F first
#define S second
typedef pair<ll, ll> ii;
typedef pair<ii, int> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef map<int, int> mii;

#define EPS 1e-6
#define FOR(i,n) for(int i=0;i<((int)(n));i++)
#define FORi(i,a,b) for(int i=((int)(a));i<((int)(b));i++)
#define FOA(v, a) for(auto v : a)

int minimumInstructions(
    int N, int M, int K, std::vector<int> C,
    vector<int> A, vector<std::vector<int>> B) {
	map<int, vector<int>> f;
	FOR(i,M){
		FOA(v, B[i]){
			f[v].push_back(i);
		}
	}
	set<int> ok;
	FOR(j,N-M+1){
		vi curr;
		set<int> poss;
		FOA(v, f[C[j]]) poss.insert(v);
		FORi(i,1,M){
			set<int> npos;
			FOA(v, f[C[j+i]]){
				int pp = (v-i + M)%M;
				if(poss.count(pp)) npos.insert(pp);
			}
			poss = npos;
		}
		if(poss.empty()) continue;
		ok.insert(j);
	}
	if(!ok.count(0)) return -1;
	int p=0;
	int cp=M;
	int ans = 1;
	while(cp<N){
		//cout<<p<<" "<<cp<<endl;
		while(!ok.count(cp)) cp--;
		if(cp<p) return -1;
		p = cp;
		cp+=M;
		ans++;
	}
  return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Execution timed out 1589 ms 212 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Execution timed out 1589 ms 212 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Execution timed out 1589 ms 212 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Execution timed out 1589 ms 212 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Execution timed out 1589 ms 212 KB Time limit exceeded
4 Halted 0 ms 0 KB -