Submission #1131368

#TimeUsernameProblemLanguageResultExecution timeMemory
1131368Champ_NamanPainting Walls (APIO20_paint)C++20
28 / 100
443 ms589824 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][m]; for(int i=0; i<k; i++) for(int j=0; j<m; j++) pre[i][j] = 0; for(int i=0; i<m; i++){ for(int j=0; j<a[i]; j++){ pre[b[i][j]][i] = 1; } } 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...