Advertisement
saske_7

uva12504.cpp

Sep 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.51 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std ;
  4. #define M 1000000
  5. #define pf printf
  6. #define sf scanf
  7. #define sf1(x) scanf("%d",&x)
  8. #define sf2(x,y) scanf("%d %d",&x,&y)
  9. #define pf1(x) printf("%d\n",x)
  10. #define pf2(x,y) printf("%d %d\n",x,y)
  11. #define rep(i,n) for(i = 0 ;i< n ; i++)
  12. #define pb push_back
  13.  
  14. typedef long long ll ;
  15.  
  16. vector<string > del;
  17. vector<string > changed ;
  18. vector<string > n_values;
  19.  
  20. int main(){
  21.    //  freopen("in.txt ","r",stdin);
  22.  //freopen("out.txt ","w",stdout);
  23.  
  24. int i , j , k, tc ;
  25. sf1(tc);
  26. getchar();
  27.   while(tc--){
  28.     map<string , string>mp;
  29.     map<string , string>:: iterator it;
  30.  
  31.     char s1[1000] ;
  32.     gets(s1);
  33.     int err = 0;
  34.       for(i = 1; s1[i]!= '}' ; ){
  35.         j = 0 ;
  36.         char key[1000] ,val[1000] ;
  37.         int count  = 0;
  38.  
  39.           while(1){
  40.  
  41.             key[j++] = s1[i++];
  42.             if(s1[i] == ':'){
  43.                 i++;
  44.                 break;
  45.             }
  46.           }
  47.         key[j] =  '\0';
  48.  
  49.         j = 0;
  50.         count  = 0;
  51.           while(1){
  52.             val[j++] = s1[i++];
  53.             if(s1[i] == ','){
  54.                 i++;
  55.             break;
  56.  
  57.             }
  58.             if(s1[i] == '}'){
  59.                 err = 1;
  60.                 break;
  61.  
  62.             }
  63.           }
  64.           val[j] = '\0';
  65.           mp[key ] = val;
  66.     it = mp.find(key);
  67.     if(err ==  1 )
  68.       break;
  69.  
  70.       }
  71.     gets(s1);
  72.     err = 0;
  73.       for(i = 1; s1[i]!= '}' ; ){
  74.         j = 0 ;
  75.         char key[1000] ,val[1000] ;
  76.         int count  = 0;
  77.  
  78.           while(1){
  79.  
  80.             key[j++] = s1[i++];
  81.             if(s1[i] == ':'){
  82.                 i++;
  83.                 break;
  84.             }
  85.           }
  86.         key[j] =  '\0';
  87.  
  88.         j = 0;
  89.         count  = 0;
  90.           while(1){
  91.             val[j++] = s1[i++];
  92.             if(s1[i] == ','){
  93.                 i++;
  94.             break;
  95.  
  96.             }
  97.             if(s1[i] == '}'){
  98.                 err = 1;
  99.                 break;
  100.  
  101.             }
  102.           }
  103.           val[j] = '\0';
  104.     it = mp.find(key);
  105.     if(it == mp.end()){
  106.       n_values.push_back(key);
  107.     }
  108.     if(it !=  mp.end()){
  109.         if(it->second != val ){
  110.           changed.push_back(key );
  111.         }
  112.           mp.erase(it);
  113.     }
  114.  
  115.  
  116.  
  117.      //   cout << it-> first  << "=> " << it-> second << "\n";
  118.     if(err ==  1 )
  119.       break;
  120.  
  121.       }
  122.   //sort(mp.begin(), mp.end());
  123.   vector<string> fkk;
  124.   for(it = mp.begin(); it!= mp.end(); it++){
  125.     char key[1000];
  126. //   cout << it->first <<"\n";
  127.  
  128.       fkk.push_back(it->first);
  129.       }
  130.  
  131.     sort(fkk.begin() , fkk.end());
  132.     sort(changed.begin(), changed.end());
  133.     sort(n_values.begin(),n_values.end());
  134.  
  135.     int errflag = 0;
  136.     if(n_values.size() != 0)
  137.     pf("+");  for( i = 0 ;i < n_values.size() ;i++)
  138.     {
  139.       errflag =1;
  140.       if(i!=  n_values.size()-1)
  141.         cout<< n_values[i]<< ",";
  142.         else cout<< n_values[i]<< "\n";
  143.  
  144.     }
  145.     n_values.clear();
  146.     if(fkk.size() != 0)
  147.       pf("-");
  148.       for( i = 0 ;i < fkk.size() ;i++){
  149.        errflag =1;
  150.         if(i!=  fkk.size()-1)
  151.           cout<< fkk[i]<< ",";
  152.             else cout<< fkk[i]<< "\n";
  153.  
  154.         }
  155.         fkk.clear();
  156.     if(changed.size() != 0)
  157.     pf("*");
  158.     for( i = 0 ;i < changed.size() ;i++) {
  159.         errflag = 1;
  160.       if(i!=  changed.size()-1)
  161.         cout<< changed[i]<< ",";
  162.         else cout<< changed[i]<< "\n";
  163.  
  164.     }
  165. if(errflag == 0){
  166.     pf("No changes\n");
  167. }
  168.  
  169.  
  170.  
  171.     pf("\n");
  172.     changed.clear();
  173.     mp.clear();
  174.  
  175.   }
  176. return 0 ;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement