제출 #348623

#제출 시각아이디문제언어결과실행 시간메모리
348623denkendoemeer벽 칠하기 (APIO20_paint)C++14
100 / 100
556 ms14956 KiB
#include<bits/stdc++.h> #include "paint.h" using namespace std; int dp[2][50005],viz[100005]; vector<int>g[100005]; int minimumInstructions(int n,int m,int k,vector<int>c,vector<int>a,vector<vector<int>>b) { int i; for(i=0;i<m;i++) for(auto it:b[i]) g[it].push_back(i); for(i=n-1;i>=0;i--){ for(auto it:g[c[i+2]]) dp[i%2][it]=0; for(auto it:g[c[i]]){ dp[i%2][it]=dp[(i+1)%2][(it+1)%m]+1; if (dp[i%2][it]>=m) viz[i]=1; } } int ans=0,last=-1,maxi=-m; for(i=0;i<n;i++){ if (viz[i]) maxi=i; if (i>last){ if (maxi+m==i) return -1; ans++; last=maxi+m-1; } } 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...