<style>
.reveal .slides {
text-align: left;
font-size:32px;
}
</style>
## 530競技程式培力基地(二)
----
- 題目解答
---
## 題目解答
[Link](https://vjudge.net/contest/748501#overview)
----
## A - Triangle Wave
----
講議題我就直接放答案
[Link](https://hackmd.io/gpgSjlxCSVyHZZZfW1D05g?view)
----
## B - Sum
----
三個數判斷其中兩個數的和是否等於第三個數
第一行輸入為測資 $t$
後面 $t$ 行是三個數 $a,b,c$
----
那我們有三種需要判斷的分別是
- a+b==c
- a+c==b
- b+c==a
這三種情況其中一種符合就可以輸出$YES$
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int a,b,c;
cin>>a>>b>>c;
if(a+b==c||a+c==b||b+c==a)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
```
----
## C - YES or YES?
----
判斷輸入的字串是否是 $YES$
只要是YES不管其中的字母有沒有小寫
所以$yes,Yes,yEs,yeS,YEs,yES,YeS,YES$都是可以的
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
char a,b,c;
cin>>a>>b>>c;
if((a!='Y'&&a!='y')||(b!='E'&&b!='e')||(c!='S'&&c!='s'))
cout<<"NO\n";
else
cout<<"YES"<<endl;
}
return 0;
}
```
----
## D - Odd One Out
----
判斷哪個數字只出現過一次
所以我們可以利用if else 判斷哪兩個相同就好
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int a,b,c;
cin>>a>>b>>c;
if(a==b&&b!=c)
cout<<c<<endl;
else if(a==c&&a!=b)
cout<<b<<endl;
else if(a!=b&&b==c)
cout<<a<<endl;
}
return 0;
}
```
----
## E - A+B Again?
----
十位數字 + 個位數
我們要利用到 % 取餘數的運算子
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int n1=n%10;
int n2=n/10;
cout<<n1+n2<<endl;
}
return 0;
}
```
----
## F - Word
----
判斷字串中大小寫的數量
- 如果 大寫字母 $>$ 小寫 就全換成大寫
- 如果 小寫字母 $\ge$ 大寫 就全換成小寫
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
string tobig(string s){
int n=s.size();
for(int i=0;i<n;i++){
if(s[i]<='z'&&s[i]>='a'){
s[i]-=32;
}
}
return s;
}
string tosmall(string s){
int n=s.size();
for(int i=0;i<n;i++){
if(s[i]<='Z'&&s[i]>='A'){
s[i]+=32;
}
}
return s;
}
int main(){
string s;
cin>>s;
int bc=0,sc=0;
for(auto i:s){
if(i>='A'&&i<='Z')
bc++;
else
sc++;
}
if(sc>=bc)
s=tosmall(s);
else if(sc<bc)
s=tobig(s);
cout<<s;
return 0;
}
```
----
## G - The Bento Box Adventure
----
判斷哪一個數字沒有
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
bool f1=false,f2=false,f3=false,f4=false,f5=false;
for(int i=0;i<4;i++){
cin>>a;
if(a==1)
f1=true;
else if(a==2)
f2=true;
else if(a==3)
f3=true;
else if(a==4)
f4=true;
else
f5=true;
}
if(!f1)
cout<<1;
else if(!f2)
cout<<2;
else if(!f3)
cout<<3;
else if(!f4)
cout<<4;
else
cout<<5;
}
```
----
## H - Array Coloring
----
在陣列中的元素染色
- 兩種顏色所對應元素的總和具有相同的奇偶性
- 每種顏色都至少有一個元素被染色
然後我們把相同顏色的數總和,判斷兩種顏色的奇偶性是否一樣
所以我們只要知道奇數的和是否為偶數就好
----
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int a;
int odd=0;
for(int i=0;i<n;i++){
cin>>a;
if(a&1)
odd++;
}
if(odd&1)
cout<<"NO\n";
else
cout<<"YES\n";
}
}
```
---
[題目連結](https://vjudge.net/contest/748801)
{"title":"530競技程式培力基地(二)","contributors":"[{\"id\":\"2f04e9e4-ce0e-4fa7-9f7e-a3c9ae53239b\",\"add\":4683,\"del\":1013,\"latestUpdatedAt\":1758974503143}]","description":"題目解答"}