Submission #370438

#TimeUsernameProblemLanguageResultExecution timeMemory
370438daniel920712"The Lyuboyn" code (IZhO19_lyuboyn)C++14
34 / 100
245 ms16424 KiB
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <stack>

using namespace std;
stack < int > t;
vector < int > all;
char tt[100005];
int N,K,T,S;
int ans[1000005][25];
void F(int here)
{
    int i,j;
    if(here==0)
    {
        all.push_back(0);
        all.push_back(1);
    }
    else if(here==N)
    {
        printf("%d\n",1<<N);
        for(auto i:all)
        {
            for(j=N-1;j>=0;j--)
            {
                if(i&(1<<j)) printf("1");
                else printf("0");
            }
            printf("\n");
        }
        return;
    }
    else
    {
        for(auto i:all) t.push(i+(1<<here));
        while(!t.empty())
        {
            all.push_back(t.top());
            t.pop();
        }

    }
    F(here+1);
}
void F2(int here)
{
    int i,j,now=0;
    if(here==0)
    {
        all.push_back(0);
        all.push_back(1);
    }
    else if(here==N)
    {
        for(auto i:all)
        {
            for(j=N-1;j>=0;j--)
            {
                if(i&(1<<j)) ans[now][N-j-1]=1;
                else ans[now][N-j-1]=0;

                if(now==0)
                {
                    if(i&(1<<j)) ans[1<<N][N-j-1]=1;
                    else ans[1<<N][N-j-1]=0;
                }
            }
            now++;
        }
        return;
    }
    else
    {
        for(auto i:all) t.push(i+(1<<here));
        while(!t.empty())
        {
            all.push_back(t.top());
            t.pop();
        }

    }
    F2(here+1);
}
int main()
{
    int i,j,k,con;
    scanf("%d %d %d",&N,&K,&T);
    scanf("%s",tt);
    if(K%2==0||K>N||(K==N&&K!=1)) printf("-1\n");
    else if(K==1) F(0);
    else if(K==3)
    {
        printf("%d\n",1<<N);
        F2(0);

        for(i=1;i<(1<<N);i+=2)
        {
            con=0;
            for(j=1;j<=4;j++)
            {

                if(ans[i][N-j]==ans[i-1][N-j]&&ans[i][N-j]==ans[i+1][N-j])
                {
                    ans[i][N-j]=1-ans[i][N-j];
                    con++;
                    if(con>=2) break;
                }
            }
        }

        for(i=0;i<(1<<N);i++)
        {
            for(j=0;j<N;j++) printf("%d",ans[i][j]);
            printf("\n");
        }


    }
    return 0;
}
/*
01001
01000
11000
*/

Compilation message (stderr)

lyuboyn.cpp: In function 'void F(int)':
lyuboyn.cpp:15:9: warning: unused variable 'i' [-Wunused-variable]
   15 |     int i,j;
      |         ^
lyuboyn.cpp: In function 'void F2(int)':
lyuboyn.cpp:49:9: warning: unused variable 'i' [-Wunused-variable]
   49 |     int i,j,now=0;
      |         ^
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:88:13: warning: unused variable 'k' [-Wunused-variable]
   88 |     int i,j,k,con;
      |             ^
lyuboyn.cpp:89:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   89 |     scanf("%d %d %d",&N,&K,&T);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
lyuboyn.cpp:90:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   90 |     scanf("%s",tt);
      |     ~~~~~^~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...