Submission #1131506

#TimeUsernameProblemLanguageResultExecution timeMemory
1131506Champ_NamanPainting Walls (APIO20_paint)C++20
12 / 100
24 ms7324 KiB
#include "paint.h" #include<bits/stdc++.h> using namespace std; int minimumInstructions(int n, int m, int k, vector<int> c, vector<int> a, vector<vector<int>> b){ int pre[k]; for(int i=0; i<k; i++) pre[i] = -1; for(int i=0; i<m; i++){ for(int j=0; j<a[i]; j++){ pre[b[i][j]] = i; } } int ans = 0; for(int i=0; i<n;){ int mx = -1e9; for(int j=0; j<m; j++){ if(pre[c[i]] != j) continue; int cnt = 0; while(i + cnt < n and cnt < m and pre[c[i + cnt]] == (j + cnt) % m){ cnt++; } if(i - (m-cnt) < 0) continue; int tf = 1; for(int k=j-1, l=1; l <= m-cnt; k--, l++){ k = (k+m) % m; if(pre[c[i-l]] != k) tf = 0; } if(tf) mx = max(mx, i+cnt); } if(mx == -1e9) return -1; i = mx; ans++; } return ans; }
#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...