PAT甲級 1002 A+B for Polynomials (25 分) (模擬)

題目鏈接:傳送門

思路:之間每一項對應相加即可,注意如果係數是零就不用輸出這一項了。

代碼:

#include <bits/stdc++.h>

using namespace std;


const int maxn = 1005;


double a[maxn];
bool vis[maxn];


int main() {
	int k;
	ios::sync_with_stdio(0);
	int cnt = 0;
	for(int i = 0 ; i < 2 ; i++) {
		cin >> k;
		for(int i = 0 ; i < k ; i++) {
			int t;
			cin >> t;
			double x;
			cin >> x;
			a[t] += x;
		}
	}
    for(int i = maxn - 1 ; i >= 0; i--)if(a[i]) {
        cnt++;
        vis[i] = 1;
    }
	cout << cnt;
	for(int i = maxn - 1 ; i >= 0 ; i--) {
		if(vis[i]) {
			cout <<" " << i << " " << fixed << setprecision(1) << a[i]; //fixed << setprecision << 用於限制精度
		}
	}
	cout << "\n";
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章