UVA

来源:互联网 发布:centos keepalived nfs 编辑:程序博客网 时间:2024/06/06 15:41

Updating a Dictionary

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <map>#include <string>using namespace std;int main(){    int t;    char s[110],ss[110];    string s1[110],s2[110],s3[110];    scanf("%d",&t);    while(t--){        map<string,string>q1,q2;        scanf("%s",s);        int aa=strlen(s);        string qq,ww;        int jia=0,jian=0,wu=0;        int js=0,jis=0,ws=0;        for (int i=0;i<aa;i++){            if (isalpha(s[i])){                qq+=s[i];            }            else if (isdigit(s[i])){                ww+=s[i];            }            else if (s[i]==','||s[i]=='}'){                q1[qq]=ww;                ww.clear();                qq.clear();            }        }        scanf("%s",ss);        int bb=strlen(ss);        for (int i=0;i<bb;i++){            if (isalpha(ss[i])){                qq+=ss[i];            }            else if (isdigit(ss[i])){                ww+=ss[i];            }            else if (ss[i]==','||ss[i]=='}'){                q2[qq]=ww;                if (!qq.empty()&&!q1.count(qq)){                    jia=1;                    s1[js++]=qq;                }                else if (!qq.empty()&&q1[qq]!=ww){                    wu=1;                    s3[ws++]=qq;                }                ww.clear();                qq.clear();            }        }        for (int i=0;i<aa;i++){            if (isalpha(s[i])){                qq+=s[i];            }            else if (isdigit(s[i])){                ww+=s[i];            }            else if (s[i]==','||s[i]=='}'){                if (!qq.empty()&&!q2.count(qq)){                    jian=1;                    s2[jis++]=qq;                }                ww.clear();                qq.clear();            }        }        if (jia){            sort(s1,s1+js);            printf("+");            for (int i=0;i<js;i++){                if (i==0){                    cout<<s1[i];                }                else{                    cout<<','<<s1[i];                }            }            printf("\n");        }        if (jian){            sort(s2,s2+jis);            printf("-");            for (int i=0;i<jis;i++){                if (i==0){                    cout<<s2[i];                }                else{                    cout<<','<<s2[i];                }            }            printf("\n");        }        if (wu){            sort(s3,s3+ws);            printf("*");            for (int i=0;i<ws;i++){                if (i==0){                    cout<<s3[i];                }                else{                    cout<<','<<s3[i];                }            }            printf("\n");        }        if (jia==0&&jian==0&&wu==0){            printf("No changes\n");        }        printf("\n");    }    return 0;}