สมมติว่าเราได้รับภาพที่มี n พิกเซล พิกเซลสามารถมีสีได้ดังนี้:
- C (ซีอัน)
- M (แมจента)
- Y (เหลือง)
- W (ขาว)
- G (เทา)
- B (ดำ)
สีของพิกเซลที่ i กำหนดในสตริง 'pixels' จากสตริงที่ให้มา เราต้องหาว่าภาพถ่ายเป็นภาพสีหรือขาวดำ หากเป็นภาพสี จะมีพิกเซลสี C, M, Y อย่างน้อย 1 ตัว และพิมพ์ 'Color' มิฉะนั้น จะมีเฉพาะ W, G, B เท่านั้น และพิมพ์ 'BW'
เช่น ถ้าค่าที่ป้อนเข้าเป็น n = 10, pixels = "GBWYM" ผลลัพธ์จะได้ Color
ขั้นตอนการแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
สำหรับ i := 0 เมื่อ i < n เพิ่ม i ทีละ 1 ทำ: ถ้า pixels[i] ไม่เท่ากับ 'B' และไม่เท่ากับ 'W' และไม่เท่ากับ 'G' แล้ว: พิมพ์("Color") คืนค่า พิมพ์("BW")
ตัวอย่างโค้ด
ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:
#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; }
ข้อมูลนำเข้า
10, "GBWYM"
ข้อมูลส่งออก
Color