3644 2023. 03. 01 14:43:15 váááá Táblajáték csharp Hibás válasz 34/50 107ms 32796 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace táblajáték
{
    class Program
    {
        static string minus(string bi)
        {
            string ki = "";
            int vált = -1;
            for (int i = bi.Length-1; i > 0; i--)
            {
                if(bi[i] == '0' && bi[i-1] == '1')
                {
                    vált = i;
                    break;
                }
            }
            if (vált == -1)
            {
                for (int i = 0; i < bi.Length - 1; i++)
                {
                    ki += bi[i];
                }
                ki += '0';
            }
            else
            {
                for (int i = 0; i < bi.Length; i++)
                {
                    if (i < vált - 1) ki += bi[i];
                    if (i == vált - 1) ki += '0';
                    if (i == vált) ki += '1';
                    if (i > vált) ki += bi[i];
                }
                if(ki[0] == '0')
                {
                    bi = "";
                    for (int i = 1; i < ki.Length; i++)
                    {
                        bi += '1';
                    }
                    ki = bi;
                }
            }
            return ki;
        }

        static string plus(string bi)
        {
            string ki = "";
            int vált = -1;
            for (int i = bi.Length - 1; i > 0; i--)
            {
                if (bi[i] == '1' && bi[i - 1] == '0')
                {
                    vált = i;
                    break;
                }
            }
            if(bi == "0")
            {
                ki = "1";
            }
            else if (bi[bi.Length-1] == '0')
            {
                for (int i = 0; i < bi.Length-1; i++)
                {
                    ki += bi[i];
                }
                ki += "1";
            }
            else {
                if (vált == -1)
                {
                    ki += '1';
                    for (int i = 0; i < bi.Length; i++)
                    {
                        ki += '0';
                    }
                }
                else
                {
                    for (int i = 0; i < bi.Length; i++)
                    {
                        if (i < vált - 1) ki += bi[i];
                        if (i == vált - 1) ki += '1';
                        if (i == vált) ki += '0';
                        if (i > vált) ki += '0';
                    }
                }
            }
            return ki;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int sor = 0;
            string t = Console.ReadLine();
            string[] a = new string[n];
            string bin = "0";
            for (int i = 0; i < n; i++)
            {
                a[i] = t.Split()[i];
            }
            string bintemp;
            for (int i = 0; i < n; i++)
            {
                if (a[i] == "0")
                {
                    sor++;
                    if(bin != "0") bin += "0";
                }
                if (a[i] == "1")
                {
                    sor++;
                    if (bin == "0") bin = "1";
                    else bin += "1";
                }
                if (a[i] == "2")
                {
                    sor--;
                    if(bin.Length == 1)
                    {
                        bin = "0";
                    }
                    else   bin = bin.Substring(0, bin.Length - 1);
                }
                if (a[i] == "3")
                {
                    bin = minus(bin);
                }
                if (a[i] == "4")
                {
                    bin = plus(bin);
                }
            }
            Console.WriteLine(sor);
            Console.WriteLine(bin);
            Console.ReadLine();
        }
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 34/50
1 Elfogadva 0/0 28ms 20600 KiB
2 Hibás válasz 0/0 30ms 21500 KiB
3 Elfogadva 3/3 28ms 21376 KiB
4 Elfogadva 3/3 28ms 22156 KiB
5 Elfogadva 3/3 28ms 22028 KiB
6 Elfogadva 3/3 29ms 23232 KiB
7 Elfogadva 3/3 27ms 22752 KiB
8 Elfogadva 3/3 30ms 23848 KiB
9 Elfogadva 3/3 28ms 23180 KiB
10 Részben helyes 1/3 107ms 32580 KiB
11 Elfogadva 3/3 28ms 23896 KiB
12 Részben helyes 1/3 46ms 28544 KiB
13 Részben helyes 1/4 28ms 23872 KiB
14 Részben helyes 1/4 45ms 28504 KiB
15 Részben helyes 1/4 30ms 24300 KiB
16 Részben helyes 1/4 103ms 32796 KiB
17 Elfogadva 4/4 32ms 24304 KiB