#include<iostream>
using namespace std;
int main()
{
    int n,q,i,index1,index2,j=0;
    cin>>n>>q;
    char znak;
    char*tab=new char[n]();
    char*tab1=new char[q]();
    for(i=0;i<n;i++)
        tab[i]=0;
    for(i=0;i<q;i++)
    {
        cin>>znak;
        if(znak=='+')
        {
            cin>>index1>>index2;
            if(index1==index2)
                tab[index1]='1';
            else
            tab[index1]='?';
            tab[index2]='?';
        }
        if(znak=='-')
        {
            cin>>index1;
            tab[index1]=0;
        }
        if(znak=='?')
        {
            cin>>index1;
            tab1[j]=tab[index1];
            j++;
        }
    }
    for(i=0;i<j;i++)
    {
        if((tab1[i]=='?')||(tab1[i]=='+')||(tab1[i]=='-'))
            cout<<tab1[i]<<" ";
        else
            break;
    }
    delete[]tab;
    delete[]tab1;
    return 0;
}
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53  | #include<iostream> using namespace std; int main() { int n,q,i,index1,index2,j=0; cin>>n>>q; char znak; char*tab=new char[n](); char*tab1=new char[q](); for(i=0;i<n;i++) tab[i]=0; for(i=0;i<q;i++) { cin>>znak; if(znak=='+') { cin>>index1>>index2; if(index1==index2) tab[index1]='1'; else tab[index1]='?'; tab[index2]='?'; } if(znak=='-') { cin>>index1; tab[index1]=0; } if(znak=='?') { cin>>index1; tab1[j]=tab[index1]; j++; } } for(i=0;i<j;i++) { if((tab1[i]=='?')||(tab1[i]=='+')||(tab1[i]=='-')) cout<<tab1[i]<<" "; else break; } delete[]tab; delete[]tab1; return 0; }  | 
            
        
                    English