197192025-12-19 19:00:56KristófTáblajátékcpp17Accepted 50/502ms508 KiB
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
void add1(bitset<501> &num)
    {
    int i=0;
    while(num[i]){num.flip(i);i++;}
    num.flip(i);
    }
void d1(bitset<501> &num)
    {
    int i=0;
    while(!num[i]){num.flip(i);i++;}
    num.flip(i);
    }
int main()
{
    int n;
    cin>>n;
    bitset<501> num(1);
    int operation;
    for(int i=0;i<n;i++)
        {
        cin>>operation;
        if(operation==0)
            {
            num<<=1;
            }
        else if(operation==1)
            {
            num<<=1;
            num.set(0);
            }
        else if(operation==2)
            {
            num>>=1;
            }
        else if(operation==3)
            {
            d1(num);
            }
        else if(operation==4)
            {
            add1(num);
            }
        //cout<<num<<endl<<endl;
        }
    string ans="";
    for(int i=num.size()-1;i>-1;i--)
        {
        if(num[i]==1)
            {
            cout<<i<<endl;
            i--;
            while(i > -1&&num[i]==0 )i--;
            //cout<<"a";
            for(;i>-1;i--)
                {
                ans+=to_string(num[i]);
                //cout<<to_string(num[i])<<endl;
                }
            }
        }
    //cout<<" aaa";
    if(!ans.size())
        {
        cout<<0;
        }
    else
        cout<<ans;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms504 KiB
2Accepted0/01ms508 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms316 KiB
13Accepted4/42ms316 KiB
14Accepted4/41ms316 KiB
15Accepted4/41ms316 KiB
16Accepted4/41ms316 KiB
17Accepted4/41ms316 KiB