#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vii;
typedef pair<ll,ll> pii;
#define pb push_back
#define F first
#define S second
#define all(v) v.begin(),v.end()
const ll M=1e5+10;
ll n,m,c[M],a[M];
ll b[201][M],chk[505][202],cc[M];
int minimumInstructions(int N,int M,int K,vector<int>C,vector<int>A,vector<vector<int>>B) {
n=N,m=M;
for(int i=0;i<n;i++)
c[i]=C[i];
for(int i=0;i<m;i++){
a[i]=A[i];
for(int j=0;j<a[i];j++)
b[i][j]=B[i][j];
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
ll l=0,r=a[j]-1,mid;
while(l<=r){
mid=((l+r)>>1);
if(b[j][mid]==c[i]){
chk[i][j]=1;
break;
}
if(b[j][mid]<c[i])
l=mid+1;
else
r=mid-1;
}
}
}
for(int i=0;i<n-m+1;i++){
for(int j=0;j<m;j++){
for(int l=0;l<m;l++){
if(!chk[i+l][(j+l)%m])
break;
if(l==m-1)
cc[i]=1;
}
if(cc[i])
break;
}
}
ll mx=-1,cur=-1;
int res=0;
for(int i=0;i<n;i++){
if(cc[i])
mx=max(mx,i+m-1);
if(i>mx){
return -1;
}
if(i>cur)
cur=mx,res++;
}
return res;
}
# | 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... |