PAT 1002 A+B for Polynomials

我的天啊,PAT真的處處都是坑,第一次提交30分,忽略了兩個點~~~

(1)如果兩個多項式相加後沒有係數非0的項,應該只輸出“0”,後面不能跟空格

(2)兩個多項式中某一項相加係數是0了,就不能輸出這一項,前面K計數時,也不能把這一項算進去。

#include<cstdio>
#include<map>
using namespace std;
int main()
{
    int a,b;
    map<int,float,greater<int>> mp;
    map<int,float>::iterator it;
    scanf("%d",&a);
    for(int i=0;i<a;i++)
    {
        int c;
        float d=1.0;
        scanf("%d%f",&c,&d);
        mp[c]=d;
    }
    scanf("%d",&b);
    for(int i=0;i<b;i++)
    {
        int c;
        float d=1.0;
        scanf("%d%f",&c,&d);
        if(mp.find(c)==mp.end()) mp[c]=d;
        else{
            mp[c]+=d;
            if((mp[c]>-1e-6) && (mp[c]<1e-6))
                mp.erase(c);
        }
    }
    printf("%d",mp.size());
    if(mp.size()==0) return 0;
    for(it=mp.begin();it!=mp.end();it++)
    {
        printf(" %d %.1f",it->first,it->second);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章