Submission #1131369

#TimeUsernameProblemLanguageResultExecution timeMemory
1131369Champ_NamanPainting Walls (APIO20_paint)C++20
12 / 100
30 ms7240 KiB
#include "paint.h" #include<bits/stdc++.h> using namespace std; int minimumInstructions(int n, int m, int k, std::vector<int> c, std::vector<int> a, std::vector<std::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 (pre[c[i + cnt]] == ((j + cnt) % m)) and cnt < m){ cnt++; } if(i - (m-cnt) < 0) continue; int tf = 1; for(int k=j-1, x=1; x<=m-cnt; k--, x++){ k = (k+m) % m; if(pre[c[i-x]] != k) tf = 0; } if(tf){ mx = std::max(mx, i+cnt); } } if(mx == -1e9) return -1; i = mx; ans++; } return ans; } // signed main(){ // ios_base::sync_with_stdio(0); // cin.tie(NULL);cout.tie(NULL); // int n, m, k; // cin>>n>>m>>k; // vector<int> c; // for(int i=0; i<n; i++){ // int x; // cin>>x; // c.push_back(x); // } // vector<int> a(m); // vector<vector<int>> b(m); // for(int i=0; i<m; i++){ // cin>>a[i]; // for(int j=0; j<a[i]; j++){ // int x; // cin>>x; // b[i].push_back(x); // } // } // cout<<minimumInstructions(n, m, k, c, a, b); // return 0; // }
#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...