QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#402847 | #435. Painting Walls | HossamHero7# | 100 ✓ | 18ms | 21344kb | C++20 | 1.9kb | 2024-05-01 16:34:21 | 2024-05-01 16:34:21 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#include "paint.h"
//#include "grader.cpp"
int P[400005][20];
int minimumInstructions(int n,int m, int K,vector<int> a,vector<int> sz,vector<vector<int>> b) {
vector<vector<int>> idx_color(K);
for(int i=0;i<m;i++){
for(auto j : b[i]) idx_color[j].push_back(i);
}
vector<vector<int>> v(n);
for(int i=0;i<n;i++) {
v[i] = idx_color[a[i]];
}
int pt = 1;
vector<vector<int>> id(n);
for(int i=0;i<n;i++){
for(auto j : v[i]) id[i].push_back(pt) , pt ++;
}
for(int i=0;i<n-1;i++){
map<int,int> exist;
for(int j=0;j<(int)v[i].size();j++) exist[v[i][j]] = id[i][j];
for(int j=0;j<(int)v[i+1].size();j++){
if(exist.count((v[i+1][j]-1+m)%m)) {
int node = exist[(v[i+1][j]-1+m)%m];
P[node][0] = id[i+1][j];
}
}
}
for(int k=1;k<20;k++){
for(int i=0;i<pt;i++){
P[i][k] = P[P[i][k-1]][k-1];
}
}
vector<bool> valid(n);
for(int i=n-1;i>=0;i--){
for(auto j : id[i]){
int req = m - 1;
int node = j;
for(int k=0;k<20;k++){
if((1<<k)&req){
node = P[node][k];
}
}
if(node == 0) continue;
valid[i] = 1;
break;
}
}
vector<int> dp(n+1,1e9);
dp[n] = 0;
deque<int> dq;
dq.push_back(n);
for(int i=n-1;i>=0;i--){
while(dq.size() && dq.front() > i + m) dq.pop_front();
if(valid[i]) {
if(dq.empty()) continue;
dp[i] = dp[dq.front()] + 1;
while(dq.size() && dp[dq.back()] >= dp[i]) dq.pop_back();
dq.push_back(i);
}
}
if(dp[0] == 1e9) return -1;
return dp[0];
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Accepted
Test #1:
score: 0
Accepted
time: 1ms
memory: 3744kb
input:
1 1 1 0 1 0
output:
1
result:
ok single line: '1'
Subtask #2:
score: 0
Accepted
Test #22:
score: 0
Accepted
time: 13ms
memory: 9456kb
input:
500 200 100000 43773 40354 2348 52596 62314 89070 43591 1761 54688 6485 17304 56821 36 36327 32247 51209 74080 85034 19128 45821 41096 74616 95383 41097 42368 1703 71263 45273 86316 3332 86662 41554 26490 26341 48653 30964 66532 75488 33898 97982 27906 26546 14311 22085 6620 80880 55703 13418 59470 ...
output:
-1
result:
ok single line: '-1'
Subtask #3:
score: 0
Accepted
Test #25:
score: 0
Accepted
time: 3ms
memory: 7120kb
input:
20000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
20000
result:
ok single line: '20000'
Subtask #4:
score: 0
Accepted
Test #40:
score: 0
Accepted
time: 17ms
memory: 21344kb
input:
90737 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
90737
result:
ok single line: '90737'
Subtask #5:
score: 0
Accepted
Test #67:
score: 0
Accepted
time: 1ms
memory: 3820kb
input:
2 2 1 0 0 1 0 1 0
output:
1
result:
ok single line: '1'
Subtask #6:
score: 0
Accepted
Test #105:
score: 0
Accepted
time: 2ms
memory: 7880kb
input:
253 186 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
2
result:
ok single line: '2'
Subtask #7:
score: 0
Accepted
Test #133:
score: 0
Accepted
time: 4ms
memory: 8676kb
input:
19884 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
9942
result:
ok single line: '9942'
Subtask #8:
score: 0
Accepted
Test #177:
score: 0
Accepted
time: 18ms
memory: 20472kb
input:
61996 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
output:
30998
result:
ok single line: '30998'
Subtask #9:
score: 12
Accepted
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #4:
100%
Accepted
Subtask #10:
score: 15
Accepted
Dependency #1:
100%
Accepted
Dependency #5:
100%
Accepted
Subtask #11:
score: 13
Accepted
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #5:
100%
Accepted
Dependency #6:
100%
Accepted
Subtask #12:
score: 23
Accepted
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #5:
100%
Accepted
Dependency #6:
100%
Accepted
Dependency #7:
100%
Accepted
Subtask #13:
score: 37
Accepted
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
100%
Accepted
Dependency #4:
100%
Accepted
Dependency #5:
100%
Accepted
Dependency #6:
100%
Accepted
Dependency #7:
100%
Accepted
Dependency #8:
100%
Accepted
Dependency #9:
100%
Accepted
Dependency #10:
100%
Accepted
Dependency #11:
100%
Accepted
Dependency #12:
100%
Accepted
Extra Test:
score: 0
Extra Test Passed