제출 #567744

#제출 시각아이디문제언어결과실행 시간메모리
567744Bill_00Painting Walls (APIO20_paint)C++14
100 / 100
537 ms15044 KiB
#include "paint.h" #include <bits/stdc++.h> #include <vector> using namespace std; vector<vector<int> > V; vector<int> X, Y, Z; int minimumInstructions(int N, int M, int K, vector<int> C, vector<int> A, vector<vector<int> > B){ V.resize(K); X.resize(M); Y.resize(M); Z.resize(N); for(int i = 0; i < M; i++){ for(int j = 0; j < B[i].size(); j++){ V[B[i][j]].push_back(i); } } for(int i = 0; i < N; i++){ int mx = 0; for(int pos : V[C[i]]){ Y[pos] = X[pos == 0 ? (M - 1) : (pos - 1)] + 1; } if(i){ for(int pos : V[C[i - 1]]){ X[pos] = 0; } } for(int pos : V[C[i]]){ X[pos] = Y[pos]; mx = max(mx, X[pos]); // cout << X[pos] << ' '; } if(mx >= M){ Z[i] = 1; } // cout << Z[i] << ' '; } // cout << '\n'; if(Z[M - 1] == 0) return -1; int last = M; int ans = 1; while(last < N){ bool flag = 0; for(int i = min(N - 1, last + M - 1); i >= last; i--){ if(Z[i] == 1){ ans++; last = i + 1; flag = 1; break; } } if(flag == 0) return -1; } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

paint.cpp: In function 'int minimumInstructions(int, int, int, std::vector<int>, std::vector<int>, std::vector<std::vector<int> >)':
paint.cpp:14:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |         for(int j = 0; j < B[i].size(); j++){
      |                        ~~^~~~~~~~~~~~~
#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...