2722 - IP_2022_YOU_FIN Scoreboard

Time

2023/01/10 15:30:00 2023/01/10 18:20:00

Clarification

# Problem Asker Description Reply Replier Reply Time For all team

# Problem Pass Rate (passed user / total user)
13428 Connect Four (step by step)
13729 Linked Letter
13796 Struct - Complex Number
13810 Sum of Prime Divisors

13428 - Connect Four (step by step)   

Description

“四子棋”是一個經典的桌上遊戲,桌面上有立著的屏風小盒子,盒子分成76列,每一欄各有一個開口可以由上方投入小圓片;遊戲開始後,兩名玩家分別持不同顏色的小圓片,並依序從開口投入圓片;圓片受地心引力影響,會落至底部或其他圓片上;當其中一名玩家讓4枚連續的小圓片,以橫著、直著、斜著的任一種方式連成一線即獲勝

(Excerpted from wiki: https://en.wikipedia.org/wiki/Connect_Four)

給定一串數字,代表依序投入白黑圓片的欄位;請試著計算是哪一方獲勝,並印出最後的結果

 

舉例

輸入字串為:4 6 4 3 3 6 4 2 3 3 4 1 1 6 5

輸出:

o wins!

- - - - - - -

- - - - - - -

- - - x o - -

- - - o o - -

- - - o o - x

- - x x o - x

 

Note:

  1. 對局一律由白方('o')先開始
  2. 輸入的字串有可能包含多餘的步數;例如上述例子(4 6 4 3 3 6 4 2 3 3 4 1 1 6 5),從第12個輸出字元(第一個1出現的地方)開始之後的步數,因為白方已經獲勝,所以可以不用繼續印在棋盤上
  3. 輸入的字串不可能包含不合理的步數,例如:將圓片投入已經滿了的欄位中不會出現平手的局面
  4. 利用字元 ‘-’ 來代表棋盤中的空格
  5. 利用字元 ‘x’ 來代表棋盤中的黑方
  6. 利用字元 ‘o’ 來代表棋盤中的白方

Input

o1 x1 o2 x2 o3 x3 o4 x4...

 

Note:

  1. 以上整數代表黑白圓片投入的欄位數
  2. 數字和數字之間以空白隔開

Output

輸出比須符合以下格式:

p wins!

c c c c c c c

c c c c c c c

c c c c c c c

c c c c c c c

c c c c c c c

c c c c c c c

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')
  2. p為’x’、’o’其中一個字元

Sample Input  Download

Sample Output  Download

Tags




Discuss




13729 - Linked Letter   

Description

再給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:traversal()

 

function.h:

enum LetterType

  • LowerCase: 代表輸出小寫字母
  • UpperCase: 代表輸出大寫字母
  • None: 代表不輸出字母

 

LinkedLetter

  • letter (char) 儲存的英文字母
  • letterType (enum LetterType) 代表需將字母輸出成大寫、小寫,或者不輸出。
  • next (LinkedLetter*) 代表下一個LinkedLetter的記憶體位置

 

Methods:

- void traversal(LinkedLetter*) – 需不斷的拜訪傳進的LinkedLetter記憶體的下一個LinkedLetter記憶體(next)直至結束(NULL)。並將所有拜訪過的LinkedLetter中的字母(letter)依據其字母型態(letterType)的不同輸出成大寫字母、小寫字母,或不輸出。

hint:

  1. 可以透過字元的加減法輸出大寫字母
  2. 可以透過迴圈和next來不斷拜訪並取得下一個LinkedLetter
  3. 可以透過判斷LinkedLetter記憶體是否為NULL,來決定是否終止迴圈

 

function.c

#include "function.h"
 
void traversal(LinkedLetter *LL)
{
    // TODO
}

Input

TTTTT

 

Note:

  1. 輸入 5 個字元 T 分別代表字母 a~e 的字元狀態
  2. T 為 'U', 'L', 'N' 其中一種
  3. 無需處理輸入

 

e.g.

UULLU > ABcdE

LLNLN > abd

Output

輸出符合以下格式:

a1b1c1d1e1

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')
  2. a1~e1 分別為大小寫不拘的字母 'a' ~ 'e'

Sample Input  Download

Sample Output  Download

Partial Judge Code

13729.c

Partial Judge Header

13729.h

Tags




Discuss




13796 - Struct - Complex Number   

Description

給定一個名為Complex(複數)的struct,如下列所示:

Matrix

          - double real

          - double imag

real 表示該複數實部的實數的值,imag 表示該複數虛部的實數的值

 

再給定主要執行程式 main.c (題號.c)、以及Header檔 function.h (題號.h);請試著完成Header檔中未實現的函式:Add()Sub()Mul()、Div()

Methods:

Complex Add(Complex x, Complex y) – 將兩個複數相加並回傳(實部為兩複數實部相加,實部為兩複數虛部相加)

Complex Sub(Complex x, Complex y) – 將兩個複數相減並回傳(實部為兩複數實部相減,實部為兩複數虛部相減)

Complex Mul(Complex x, Complex y) – 將兩個複數相乘並回傳(實部為第一個複數實部平方減第二個複數的虛部平方,虛部為兩複數實部和虛部交叉相乘的和)

Complex Div(Complex x, Complex y) – 將兩個複數相除並回傳(第一個複數乘上第二個複數的共軛複數 / 第二個複數乘上第二個複數的共軛複數的實部)

 

function.c

#include "function.h"
 
Complex Add(Complex x, Complex y)
{
    Complex ans;
    // TODO
    return ans;
}
 
Complex Sub(Complex x, Complex y)
{
    Complex ans;
    // TODO
    return ans;
}
 
Complex Mul(Complex x, Complex y)
{
    Complex ans;
    // TODO
    return ans;
}
 
Complex Div(Complex x, Complex y)
{
    Complex ans;
    // TODO
    return ans;
}

Input

輸入符合以下格式

op

r1 i1

r2 i2

 

無需處理輸入

Output

輸出符合以下格式

(real) + (imag)i

 

無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

13796.c

Partial Judge Header

13796.h

Tags




Discuss




13810 - Sum of Prime Divisors   

Description

任何的(大於2的正整數皆可以透過質因數分解。輸入一大於 2 正整數 N,請計算出所有質因數的和。

e.g.

(prime divisors) 13 = 13; 45 = 3, 5; 1617 = 3, 7, 11

(sum of prime divisors) 13 > 13; 45 > 3 + 5 = 8; 1617 > 3 + 7 + 11 = 21

 

Hint:

  1. 先建一個質數表再去找 N 的質因數

Input

輸入符合以下格式:

N

 

Note:

  1. 2 <= N <= 20000

Output

輸出符合以下格式:

sum

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')

Sample Input  Download

Sample Output  Download

Tags




Discuss