Submission #990860

#TimeUsernameProblemLanguageResultExecution timeMemory
990860Savu_Stefan_CatalinHomework (CEOI22_homework)C++14
100 / 100
163 ms236884 KiB
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int NMAX=3e6+5;
int leaf[NMAX+5],sz[NMAX+5],st[NMAX+5],dr[NMAX+5],t[NMAX+5],vv[NMAX+5];
char s[3*NMAX+5];
vector <int> v[NMAX+5];
void dfs(int nod)
{
    if (leaf[nod]==1) {sz[nod]=1; st[nod]=1; dr[nod]=1; return ;}
    for (int i=0;i<2;++i)
    {
        dfs(v[nod][i]);
        sz[nod]+=sz[v[nod][i]];
    }
    int s=v[nod][0],d=v[nod][1];
    if (vv[nod]==0)
    {
        st[nod]=min(st[s],st[d]);
        dr[nod]=dr[s]+dr[d]-1;
    }
    else
    {
        st[nod]=st[s]+st[d];
        dr[nod]=max(dr[s]+sz[d],dr[d]+sz[s]);
    }
}
int main()
{
    ios_base::sync_with_stdio(NULL);
    cin.tie(0);
    cout.tie(0);
    cin.getline(s,8e6);
    int n=strlen(s);
    int p=0;
    int nod=0,cnt=0;
    while (true)
    {
        int val=0;
        if (s[p]=='m')
        {
            if (s[p+1]=='i') val=0;
            else val=1;
            cnt++;
            t[cnt]=nod;
            vv[cnt]=val;
            nod=cnt;
            p+=4;
        }
        else if (s[p]=='?')
        {
            cnt++;
            t[cnt]=nod;
            leaf[cnt]=1;
            p++;
        }
        else if (s[p]==')') {nod=t[nod]; p++;}
        else if (s[p]==',') p++;
        else break;
    }
    for (int i=1;i<=cnt;++i)
    {
        v[t[i]].push_back(i);
    }
    dfs(1);
    cout<<dr[1]-st[1]+1;
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:35:9: warning: unused variable 'n' [-Wunused-variable]
   35 |     int n=strlen(s);
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...