답안 #370439

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
370439 2021-02-24T03:12:00 Z daniel920712 "The Lyuboyn" code (IZhO19_lyuboyn) C++14
34 / 100
249 ms 16356 KB
#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=1;
            for(j=1;j<=N;j++)
            {
                if(con>=K) break;
                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>=K) break;
                }
            }
        }

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


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

Compilation message

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);
      |     ~~~~~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 364 KB First number in answer is not x 1 0
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
2 Correct 1 ms 364 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 1 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 1 ms 364 KB Ok
7 Correct 1 ms 364 KB Ok
8 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 227 ms 6880 KB Ok
2 Correct 109 ms 3556 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 1 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
2 Correct 13 ms 1260 KB Ok
3 Correct 249 ms 16356 KB Ok
4 Correct 118 ms 8296 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 3 ms 620 KB Ok
7 Correct 57 ms 4332 KB Ok
8 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 364 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 227 ms 6880 KB Ok
2 Correct 109 ms 3556 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 1 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 1 ms 364 KB Ok
7 Correct 13 ms 1260 KB Ok
8 Correct 249 ms 16356 KB Ok
9 Correct 118 ms 8296 KB Ok
10 Correct 1 ms 364 KB Ok
11 Correct 3 ms 620 KB Ok
12 Correct 57 ms 4332 KB Ok
13 Correct 1 ms 364 KB Ok
14 Incorrect 0 ms 364 KB Unexpected end of file - int32 expected
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 364 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -