Submission #767547

#TimeUsernameProblemLanguageResultExecution timeMemory
767547Username4132Kemija (COCI22_kemija)C++14
50 / 50
1 ms328 KiB
#include<iostream>
using namespace std;
#define forn(i, n) for(int i=0; i<(int)n; ++i)

int n, cou[26];
string str;

void process(int l, int r){
    int num = 1;
    if(str[l]>='1' && str[l]<='9') num = str[l++]-'0';
    while(l<r){
        int ind = str[l]-'A', mul = 1, nxt = l+1;
        if(l+1 < r && str[l+1]>='1' && str[l+1]<='9') mul = str[l+1] - '0', ++nxt;
        cou[ind]+=mul*num;
        l = nxt;
    }
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n;
    forn(qnum, n){
        cin >> str;
        int l=0, r=0;
        while(l<(int)str.size()){
            while(r<(int)str.size() && str[r]!='+' && str[r]!='-') ++r;
            process(l, r);
            if(r<(int)str.size() && str[r]=='-'){
                r++;
                forn(i, 26) cou[i]=-cou[i];
            }
            l=r+1;
            r+=2;
        }
        bool flag=true;
        forn(i, 26) flag&=!cou[i], cou[i]=0;
        cout << (flag? "DA\n" : "NE\n");
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...