天天看點

PAT B10631063. 計算譜半徑(20)

1063. 計算譜半徑(20)

在數學中,矩陣的“譜半徑”是指其特征值的模集合的上确界。換言之,對于給定的n個複數空間的特征值{a1+b1i, ..., an+bni},它們的模為實部與虛部的平方和的開方,而“譜半徑”就是最大模。

現在給定一些複數空間的特征值,請你計算并輸出這些特征值的譜半徑。

輸入格式:

輸入第一行給出正整數N(<= 10000)是輸入的特征值的個數。随後N行,每行給出1個特征值的實部和虛部,其間以空格分隔。注意:題目保證明部和虛部均為絕對值不超過1000的整數。

輸出格式:

在一行中輸出譜半徑,四舍五入保留小數點後2位。

輸入樣例:

5
0 1
2 0
-1 0
3 3
0 -3
      

輸出樣例:

4.24
      

代碼如下:

#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
double num[10010];
int main(){
  int N, a, b;
  scanf("%d", &N);
  for(int i = 0; i < N; i++){
    scanf("%d%d", &a, &b);
    num[i] = sqrt(a * a + b * b);
  }
  sort(num, num + N);
  printf("%.2lf", num[N - 1]);
  return 0;
}