Advertisement
Brick99

Hemija 2016

Apr 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. /* https://www.rpz-rs.org/sajt/doc/file/web_portal/04/4.7/Skolska_15-16/Informatika/SS/Materijali/SS_Takmicarski_zadaci_iz_informatike_2016/Republicko/Republicko_takmicenje_zadaci.pdf */
  2.  
  3. /* HEMIJA */
  4.  
  5. #include <iostream>
  6. #include <vector>
  7. #include <algorithm>
  8.  
  9. using namespace std;
  10.  
  11. int position(string g)
  12. {
  13.     for (int i=0;i<g.size();i++)
  14.         if ( g[i] == '=' ) return i;
  15. }
  16.  
  17. int broj(char r) { return r-'0'; }
  18.  
  19. int slovo(char r) { return r-'A'; }
  20.  
  21. int main()
  22. {
  23.     int n;
  24.     cin>>n;
  25.  
  26.     while (n--)
  27.     {
  28.         string g;
  29.         cin>>g;
  30.  
  31.         int niz1[26] = {0};
  32.         int niz2[26] = {0};
  33.  
  34.         vector <string> p1,p2;
  35.         int poz=position(g);
  36.  
  37.         string t="";
  38.         for (int i=0;i<poz;i++)
  39.         {
  40.             if ( g[i] == '+' )
  41.             {
  42.                 p1.push_back(t);
  43.                 t="";
  44.             }
  45.             else t+=g[i];
  46.         }
  47.         p1.push_back(t);
  48.         t="";
  49.         for (int i=poz+1;i<g.size();i++)
  50.         {
  51.             if ( g[i] == '+' )
  52.             {
  53.                 p2.push_back(t);
  54.                 t="";
  55.             }
  56.             else t+=g[i];
  57.         }
  58.         p2.push_back(t);
  59.  
  60.         /* OVO JE BITNO */
  61.  
  62.         for (int i=0;i<p1.size();i++)
  63.         {
  64.             int p=1;
  65.             if ( isdigit(p1[i][0]) ) p=broj(p1[i][0]);
  66.  
  67.             for (int j=0;j<p1[i].size();j++)
  68.             {
  69.                 if ( isalpha(p1[i][j]) )
  70.                     if ( isdigit(p1[i][j+1]) ) niz1[slovo(p1[i][j])]+=p*broj(p1[i][j+1]);
  71.                     else niz1[slovo(p1[i][j])]+=p;
  72.             }
  73.         }
  74.  
  75.         for (int i=0;i<p2.size();i++)
  76.         {
  77.             int p=1;
  78.             if ( isdigit(p2[i][0]) ) p=broj(p2[i][0]);
  79.  
  80.             for (int j=0;j<p2[i].size();j++)
  81.             {
  82.                 if ( isalpha(p2[i][j]) )
  83.                     if ( isdigit(p2[i][j+1]) ) niz2[slovo(p2[i][j])]+=p*broj(p2[i][j+1]);
  84.                     else niz2[slovo(p2[i][j])]+=p;
  85.             }
  86.         }
  87.  
  88.         bool flag=false;
  89.         for (int i=0;i<26;i++)
  90.             if ( niz1[i] != niz2[i] ) {flag=true;break;}
  91.  
  92.         if (flag) cout<<"nije uravnotezena"<<endl;
  93.         else cout<<"uravnotezene"<<endl;
  94.     }
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement