TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

50.0% (2/4)

Tags

Description

小 K 現在有太多的複數了,所以希望你能夠幫助他把現有的複數儲存起來,在請求資料時再回覆。

請在程式碼最前面引入標頭檔 lib0621.h,並實作以下功能:

  • 多載運算子 >>,使得讀取一個複數 cpx 可以由 cin >> cpx.real >> cpx.imaginary 改為 cin >> cpx
  • 主程式 會需要用到以下兩種函式: Init(int &N, int &Q, complex_number*& cpx, Query*& queries)
    • $N$ 代表複數的個數
    • $Q$ 代表 Query 的次數(Query等等會說明)
    • $cpx$ 代表複數的指標
    • $queries$ 代表 Query 的指標 Answer(double ans)
    • $ans$ 代表請求的資料 一開始請先宣告好需要的變數,再透過 Init 讀取資料。接著需要呼叫 $Q$ 次 Answer 依序回答 queries[0] ~ queries[N-1] 所要求的資料,而 Query 含有以下的內容:
    • queries[i].index 代表要回答的是第幾個複數
    • queries[i].type 是一個 enum,代表要回答的是實部還是虛部
    • 如果 queries[i].type == real 的話就是實部
    • 如果 queries[i].type == imaginary 的話就是虛部

complex 和 Query 都已經定義在 lib0621.h,不需要額外實作。

注意此題不需要任何的輸入或輸出,否則將會發生不可預期的結果。

若你的結構實作不符合需求,除了獲得 Wrong Answer 之外,你更有可能獲得 Compile ErrorRuntime Error

提示:你可能會需要 include 需要的標頭檔來迴避 Compile Error

如果還是不確定該如何進行,可以參考以下的程式碼進行修改:

#include "lib0621.h"

int main(){
    int N, Q;
    Query* queries;
    complex_number* cpx;
    Init(N, Q, cpx, queries);
    for(int i = 0; i < Q; i++){
        double ans = 0;
        if (queries[i].type == real){
            // TODO
        }
        if (queries[i].type == imaginary){
            // TODO
        }
        Answer(ans);
    }
}

Input Format

本題沒有輸入,隨意輸入將會得到不可預期的結果。

Output Format

本題沒有輸出,隨意輸出將會得到不可預期的結果。

Sample Input 1

2 2
-181.024 -869.655
304.215 -850.173
1 1
0 0

Sample Output 1

-850.173
-181.024

Sample Input 2

2 2
-176.545 653.125
-210.656 35.8254
0 1
1 1

Sample Output 2

653.125
35.8254

Hints

測試用標頭檔
這裡提供一份本地測試用的標頭檔,你可以將其複製下來存檔成 lib0621.h#include "lib0621.h" 做使用。但請注意,這只是測試用的標頭檔,一些與解題無關的行為將會與 judge 上的有所不同,因此請不要嘗試任何與解題無關的行為,很可能會導致各種不可預期的後果。

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~6 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2
6 1000 524288 65536 2