Submission #1309198

#TimeUsernameProblemLanguageResultExecution timeMemory
1309198vtnoo벽 칠하기 (APIO20_paint)C++20
12 / 100
20 ms8148 KiB
#include <bits/stdc++.h> #define L(i, j, k) for(int i = (j); i <= (k); i++) #define R(i, j, k) for(int i = (j); i >= (k); i--) #define ll long long #define sz(a) ((int) a.size()) #define all(a) a.begin(), a.end() #define vi vector<int> #define pb emplace_back #define me(a, x) memset(a, x, sizeof(a)) #define fst first #define snd second #define ii pair<int, int> 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) { vi f(K,-1); L(i,0,M-1){ L(j,0,A[i]-1){ f[B[i][j]]=i; } } L(i,0,N-1){ if(f[C[i]]==-1)return -1; } vi d(N,-1),r(N,-1); L(i,0,N-1){ d[i]=f[C[i]]; } R(i,N-1,0){ if(i==N-1||(d[i]+1)%M!=d[i+1]){ r[i]=i; }else r[i]=r[i+1]; } int ans=0,i=0; while(i<N){ if(r[i]-i>=M-1){ ans+=ceil(1.00*(r[i]-i+1)/M*1.00); i=r[i]; }else return -1; i++; } 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...