Advertisement
mynameishandsome

asd

Feb 25th, 2023 (edited)
915
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | Source Code | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. stack<long long> st;
  4. long long res = 0, flag = 0, t, a, b, MOD = 123456789;
  5. string s;
  6. long long module(long long a){
  7.     return (a%MOD+MOD)%MOD;
  8. }
  9. long long solve(string s){
  10.     res = 0; flag = 0;
  11.     if(!isdigit(s[0])){
  12.         flag = 3;
  13.         if(s[0] == '+') st.push(module(s[1]-48));
  14.         else st.push(module((-1)*(s[1]-48)));
  15.     }
  16.     for(long long i = flag; i < s.size(); i+=2){
  17.         if(i==0) st.push(module(s[i]-48));
  18.         else if(s[i-1] != '*'){
  19.             if(s[i-1] == '+') st.push(module(s[i]-48));
  20.             else st.push(module(((s[i]-48)*(-1))));
  21.         }
  22.         else{
  23.             st.push(module((s[i]-48)));
  24.             a = module(st.top()); st.pop();
  25.             b = module(st.top()); st.pop();
  26.             st.push(module(a*b));
  27.         }
  28.     }
  29.     while(!st.empty()){
  30.         a = module(st.top()); st.pop();
  31.         res += module(a);
  32.     }
  33.     return module(res);
  34. }
  35. int main(){
  36.     freopen("gay.txt", "r", stdin);
  37.     cin >> t;
  38.     for(long long i = 0; i!= t; i++){
  39.         cin >> s;
  40.         cout << solve(s) << "\n";
  41.     }
  42.     return 0;
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement