Giả sử chúng ta được cho một ảnh chứa n pixel. Các pixel có thể có các màu sau:
'C' (xanh lơ)
'M' (đỏ tươi)
'Y' (vàng)
'W' (trắng)
'G' (xám)
'B' (đen)
Màu của pixel thứ i được cho trong chuỗi 'pixels'. Cho chuỗi này, hãy xác định xem bức ảnh đã cho là ảnh màu hay đen trắng. Nếu là ảnh màu, nó sẽ chứa ít nhất một pixel có màu 'C', 'M' và 'Y' và ta sẽ in 'Color'; ngược lại, nó chỉ chứa các pixel màu 'W', 'G', 'B' và ta sẽ in 'BW'.
Ví dụ, nếu đầu vào là n = 10, pixels = "GBWYM", thì đầu ra sẽ là Color.
Các bước thực hiện
Để giải quyết bài toán này, chúng ta thực hiện theo các bước sau:
for khởi tạo i := 0, khi i < n, cập nhật (tăng i lên 1), do: if pixels[i] không bằng 'B' và pixels[i] không bằng 'W' và pixels[i] không bằng 'G', thì: in("Color") return in("BW")Ví dụ minh họa
Xem triển khai sau để hiểu rõ hơn:
#include <bits/stdc++.h> using namespace std; #define N 100 void solve(int n, string pixels ) { for (int i = 0 ; i < n; i++) { if(pixels[i]!='B' && pixels[i]!='W' && pixels[i]!='G') { cout<<"Color"; return; } } cout<<"BW"; } int main() { int n = 10; string pixels = "GBWYM"; solve(n, pixels); return 0; }Đầu vào
10, "GBWYM"
Đầu ra
Color