# 題目: UVa 13171 - Pixel Art
# 題目說明
給 m
、 y
、 c
三種顏色的數量,與使用的顏色,求 m
、 y
、 c
三種顏色的數量是否足夠
(總共有 8
種顏色,分別會消耗不同數量的 m
、 y
、 c
)
INPUT:
第一行輸入一個整數 t
,代表測資數
接下來有 t
行
每行有 3
個整數 m
、 y
、 c
,代表對應顏色的數量
與 1
個字串 str
,代表使用的顏色
OUTPUT:
輸出 m
、 y
、 c
的數量是否足夠
足夠則輸出 YES
與 m
、 y
、 c
的剩餘數量
不夠則輸出 NO
# 解題方法
每使用一種顏色,直接減去 m
、 y
、 c
的數量
若最後都大於零則為足夠
# 參考程式碼
#include <iostream> | |
using namespace std; | |
static auto fast_io = [] | |
{ | |
ios::sync_with_stdio(false); | |
cout.tie(nullptr); | |
cin.tie(nullptr); | |
return 0; | |
}(); | |
int main() | |
{ | |
int t, m, y, c; | |
string s; | |
cin >> t; | |
while (t--) | |
{ | |
cin >> m >> y >> c >> s; | |
for (auto& i : s) | |
{ | |
if (i == 'M') --m; | |
else if (i == 'Y') --y; | |
else if (i == 'C') --c; | |
else if (i == 'R') --m, --y; | |
else if (i == 'V') --m, --c; | |
else if (i == 'G') --y, --c; | |
else if (i == 'B') --m, --y, --c; | |
} | |
if (m >= 0 && y >= 0 && c >= 0) cout << "YES " << m << " " << y << " " << c << "\n"; | |
else cout << "NO\n"; | |
} | |
} |