2020 Jan Platinum Problem 1 Cave Paintings
Official Problem StatementEdit
Problem statement:
Problem 996: Cave PaintingsEdit
You are given a cave with N (1 ≤ N ≤ 10,000) paintings. Each painting is a rectangular grid of size M × K (1 ≤ M, K ≤ 10,000). Each cell of the grid is either empty or contains a single color.
You are asked to find the maximum number of distinct colors that appear in any single painting.
Solution:
The solution to this problem is to use a two-dimensional array to store the colors of each painting. We can then iterate through the array and count the number of distinct colors in each painting. The maximum number of distinct colors is the answer.
C++ code example:
- include <iostream>
- include <vector>
using namespace std;
int main() {
int N, M, K; cin >> N >> M >> K; vector<vector<vector<int>>> paintings(N, vector<vector<int>>(M, vector<int>(K))); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { for (int k = 0; k < K; k++) { cin >> paintings[i][j][k]; } } } int maxColors = 0; for (int i = 0; i < N; i++) { int colors = 0; vector<bool> seen(10, false); for (int j = 0; j < M; j++) { for (int k = 0; k < K; k++) { if (!seen[paintings[i][j][k]]) { colors++; seen[paintings[i][j][k]] = true; } } } maxColors = max(maxColors, colors); } cout << maxColors << endl; return 0;
}