Pagini recente » Cod sursa (job #2525867) | Cod sursa (job #130407) | Cod sursa (job #666796) | Cod sursa (job #2161281) | Cod sursa (job #1235510)
#include <fstream>
#include <stack>
#include <cstring>
#define W33D 420
using namespace std;
ifstream f("editor.in");
ofstream g("editor.out");
const int nmax = 60005;
int t,i,ok,j;
char a[nmax];
stack <char> stiv;
stack <char> val;
int main()
{
f>>t; f.get();
while (t--)
{
while (!stiv.empty())
stiv.pop();
while (!val.empty())
val.pop();
f.getline(a,nmax);
j=0;
for (i=0;i<strlen(a);i++)
{
if (a[i]=='[' || a[i]=='(' || a[i]==')'|| a[i]==']')
stiv.push(a[i]);
if (a[i]=='*' && !stiv.empty())
stiv.pop();
if (a[i]=='E')
break;
}
j=stiv.size();
ok=1;
while (j--)
{
if (stiv.top()==']')
val.push(']');
if (stiv.top()==')')
val.push(')');
if (stiv.top()=='(')
{
if (val.empty())
{
j=0;
ok=0;
break;
}
if (val.top()==')')
val.pop();
else
{
j=0;
ok=0;
break;
}
}
if (stiv.top()=='[')
{
if (val.empty())
{
j=0;
ok=0;
break;
}
if (val.top()==']')
val.pop();
else
{
j=0;
ok=0;
break;
}
}
stiv.pop();
}
if (val.empty() && ok)
g<<":)"<<'\n';
else
g<<":("<<'\n';
}
f.close();
g.close();
return 0;
}