제출 #1199514

#제출 시각아이디문제언어결과실행 시간메모리
1199514guagua0407Painting Walls (APIO20_paint)C++20
28 / 100
1595 ms589824 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define f first #define s second #define all(x) x.begin(),x.end() #define _ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int minimumInstructions( int n, int m, int k, std::vector<int> c, std::vector<int> a, std::vector<std::vector<int>> b) { vector<vector<int>> pos(k); for(int i=0;i<n;i++){ pos[c[i]].push_back(i); } vector<vector<int>> con(k); for(int i=0;i<m;i++){ for(int j=0;j<a[i];j++){ con[b[i][j]].push_back(i); } } vector<vector<int>> cnt(n,vector<int>(m)); for(int i=0;i<k;i++){ for(auto x:pos[i]){ for(auto y:con[i]){ for(int z=0;z<=y;z++){ if(x-(y-z)>=0) cnt[x-(y-z)][z]++; } for(int z=y+1;z<m;z++){ if(x-m+(z-y)>=0) cnt[x-m+(z-y)][z]++; } } } } int r=-1; int l=0; int ans=0; while(r<n-1){ int mx=-1; while(l<=r+1){ for(int j=0;j<m;j++){ if(cnt[l][j]==m){ mx=l+m-1; } } l++; } //cout<<l<<' '<<r<<' '<<mx<<'\n'; if(mx<=r) return -1; r=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...