---
# System prepended metadata

title: 彰商校內程式設計競賽 參考答案

---

# 彰商校內程式設計競賽 參考答案

以下為python參考解法，以下保證能在zerojudge上完全答對
## :memo: 參考答案


### A.北極熊大遷徒

#### 問題敘述
　因為全球暖化的關係，北極各處的浮冰正在慢慢融化之中。部份北極熊所在的浮冰已經融 化到不堪居住的程度，於是這些北極熊興起遷徙的念頭。 
已經融化到不堪居住的浮冰 A 上有 a 隻北極熊，牠們現在打算遷徙到有 b 隻北極熊居住的 浮冰 B。你要回答的是：經過北極熊大遷徙以後，浮冰 B 上總共會有多少隻北極熊。
(zerojudge上不公開題目)
#### 輸入格式
輸入只有一行，有兩個整數 a 和 b，代表有 a 隻北極熊即將從浮冰 A 遷徙到原本有 b 隻北 極熊的浮冰 B。　

範例輸入 1
24 47
範例輸出 1
71
範例輸入2
33 20
範例輸出2
53

#### 解題絲路
題目中說明，要將A浮冰上的熊遷到B浮冰上，也就是說B浮冰上是原有的B隻+A浮冰上的熊
B=A+B


#### 參考解法
```python=1
a,b=map(int,input().split())
print(a+b)
```
出處：2021NPSC網際網路程式大賽高中組
### B.山六九遊樂園(https://zerojudge.tw/ShowProblem?problemid=d460)

#### 解題絲路
依題目說明
0 ~ 5 歲兒童免票
兒童票 (6 ~ 11 歲)：590 元
青少年票 (12 ~ 17 歲)：790 元
成人票 (18 ~ 59 歲)：890 元
敬老票 (60歲以上)：399 元

設定一個變數A，依照題目判斷金額

#### 參考解法
```python=1
a=int(input())
if a<6:
    print(0)   #如果a小於6 金額為0
elif a<12:
    print(590)  #如果a小於12且大於等於6 金額為590
elif a<18:
    print(790)  #如果a小於18且大於等於12 金額為790
elif a<60:  
    print(890)   #如果a小於6且大於等於18 金額為890
else:
    print(399)  #超過60歲 金額為399

```
出處：zerojudge d460
### A.三角形辨別 (https://zerojudge.tw/ShowProblem?problemid=c294)

解題絲路：
第一 a,b,c為三個線段的邊長，但請注意，c為最大值，也就是說a,b,c必須由小到大排序
範例2
101 100 99
a,b,c要改成 99,100,101
可以透過list中的sort由小到大排序

```python=1
import sys

def isPerfect(num):
    end = int(num ** 0.5)
    res = end ** 2
    if res == num:
        res = 1 - end
    else:
        res = 1
    
    for i in range(2, end + 1):
        if num % i == 0:
            res += i + num // i
    return res

for n in sys.stdin:
    n = int(n)

    if n == 0:
        break
    
    temp = isPerfect(n)
    if temp == n:
        print("=%d" % n)
    else:
        if isPerfect(temp) == n:
            print(temp)
        else:
            print(0)
```

 
4.	七言對聯(g275) https://zerojudge.tw/ShowProblem?problemid=b294

```python=1
n=int(input())
for i in range(n):
    s=0
    list1=[int(i) for i in input().split()]
    list2=[int(i) for i in input().split()]
    if list1[1]==list1[3] or list1[1]!=list1[5] or list2[1]==list2[3] or list2[1]!=list2[5]:
        print("A",end="")
        s=1
    if list1[6]!=1 or list2[6]!=0:
        print("B",end="")
        s=1
    if list1[1]==list2[1] or list1[3]==list2[3] or list1[5]==list2[5]:
        print('C',end="")
        s=1
    if s==0:
        print("None")
    
    print()
```


5.洗牌(Cards)https://zerojudge.tw/ShowProblem?problemid=g797
```python=1
n,m=map(int,input().split())
list1=[int(i) for i in input().split()]

if m%2==0:
    a=m//2
else:
    a=m//2+1
list3=list1
for i in range(a):
    list2=[]
    for j in range(n//2):
        list2.append(list3[j])
        list2.append(list3[(n//2)+j])
    list3=[]
    for j in range(n//2):
        list3.append(list2[j])
        list3.append(list2[(n//2)+j])
if m%2==0:
    for i in list3:
        print(i,end=" ")
else:
    for i in list2:
        print(i,end=" ")
```

6.小群體 c291 https://zerojudge.tw/ShowProblem?problemid=c291

```python=1
n=int(input())
list1=[0]*n
list2=[int(i) for i in input().split()]
f=0
for i in range(n):
    if list1[i]==0:
        if list2[i]==i:
            list1[i]=1
            f+=1
        else:
            nex=i
            while list1[nex]==0:
                list1[nex]=1
                nex=list2[nex]
            f+=1

print(f)
```

AC賽前預測

1. AC(7/12)
2. AC(6/12)
3. AC(5/12)
4. AC(6/12)
5. AC(3/12)
6. AC(1/12)


