TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

14.3% (2/14)

Tags

Description

向量是程式設計常用的東西,它的運算規則自然是非常重要的,本題希望你能實作出部分的向量運算規則。

現在有 $n$ 個二維向量,其中第 $i$ 個向量為 $v_i=(X_i,Y_i)$。

你的任務是處理 $q$ 筆詢問,詢問的格式有以下六種,依序代表向量的加法、減法、乘法、除法、內積和外積:

  • + i j:請計算 $v_i+v_j$
  • - i j:請計算 $v_i-v_j$
  • * i j:請計算 $jv_i$
  • / i j:請計算 $\frac{v_i}{j}$
  • d i j:請計算 $v_i\cdot v_j$
  • c i j:請計算 $v_i\times v_j$

對於兩個向量 $a=(x_1,y_1),b=(x_2,y_2)$ 以及常數(純量) $c$,運算規則如下:

  • $a+b=(x_1+x_2,y_1+y_2)$
  • $a-b=(x_1-x_2,y_1-y_2)$
  • $ca=(cx_1,cy_1)$
  • $\frac{a}{c}=(\frac{x_1}{c},\frac{y_1}{c})$
  • $a\cdot b=x_1x_2+y_1y_2$
  • $a\times b=x_1y_2-x_2y_1$

我們建議你使用 Struct 陣列 + 輸入運算子重載來解決這題!

Input Format

第一行輸入兩個整數 $n,m$,代表向量個數和詢問個數。

接下來輸入 $n$ 行,每一行輸入兩個整數 $X_i,Y_i$,代表 $v_i=(X_i,Y_i)$。

接下來輸入 $m$ 行,每一行輸入一個字元 $t$ 和兩個整數 $i,j$,代表該次詢問的參數。

  • $1\le n\le 100$
  • $1\le m\le 10^ 5$
  • $-10000\le X_i,Y_i\le 10000$
  • 對於所有 $i$,$1\le i\le n$
  • 如果 $t$ 為 *,則 $-10000\le j\le 10000$
  • 如果 $t$ 為 /,則 $-10000\le j\le 10000,j\neq 0$
  • 如果 $t$ 為 +,-,c,d,則 $1\le j\le n$

Output Format

對於每個詢問,輸出一行,

如果詢問的結果為一個向量,則輸出兩個數字 $x,y$,代表運算結果的向量為 $(x,y)$。

否則詢問的結果為一個純量,則輸出一個數字 $val$,代表運算結果的純量為 $val$。

所有數字都要四捨五入到小數第二位。

Sample Input 1

2 8
4 5
5 10
+ 1 2
- 1 2
- 2 1
* 1 -31
/ 2 3
d 1 2
c 2 1
c 1 2

Sample Output 1

9.00 15.00
-1.00 -5.00
1.00 5.00
-124.00 -155.00
1.67 3.33
70.00
-15.00
15.00

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0 範例測資 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 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