Cod sursa(job #2288425)

Utilizator mihaimodiMihai Modi mihaimodi Data 23 noiembrie 2018 13:15:56
Problema Bool Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <fstream>
#include <cstring>
using namespace std;

ifstream fin("bool.in");
ofstream fout("bool.out");

int i,n,k1,k2;
char s[1005],st1[501],st2[501],var[101];
bool val[100];

int eval(int K1,int K2,char semn)
{
    if(semn=='!')
    {
        if(st1[K1]==1)
            return 2;
        else if(st1[k1]==2)
            return 1;
    }
    else if(semn=='&')
    {
        if(st1[K1]==2&&st1[K2]==2)
            return 2;
        return 1;
    }
    else if(semn=='|')
    {
        if(st1[K1]==2||st1[K2]==2)
            return 2;
        return 1;
    }
}



int main()
{
    fin.getline(s,1005);
    fin>>n;
    fin.get();
    fin.get(var+1,101);
    for(i=0;s[i]!=0;i++)
    {
        if(s[i]>='A'&&s[i]<='Z')
        {
            char aux[1000]={0};
            int len=0;
            while(s[i]>='A'&&s[i]<='Z')
            {
                len++;
                aux[len-1]=s[i];
                i++;
            }
            i--;
            if(len==1)
                st1[++k1]=aux[0];
            else if(len==2)
                st2[++k1]='|';
            else if(len==3)
            {
                if(aux[0]=='N')
                    st2[++k2]='!';
                else
                    st2[++k2]='&';
            }
            else if(len==4)
                st1[++k1]=2;
            else
                st1[++k1]=1;
        }
        else if(s[i]=='(')
            st2[++k2]='(';

        else if(s[i]==')')
            st2[++k2]=')';
    }
    for(i=1;i<=n;i++)
    {
        if(val[var[i]]==0)
            val[var[i]]=1;
        else
            val[var[i]]=0;
    }
    return 0;
}