답안 #370440

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
370440 2021-02-24T03:12:27 Z daniel920712 "The Lyuboyn" code (IZhO19_lyuboyn) C++14
51 / 100
542 ms 32660 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
    {
        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 0 ms 364 KB Ok
7 Correct 1 ms 364 KB Ok
8 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 242 ms 7008 KB Ok
2 Correct 116 ms 3428 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 0 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Ok
2 Correct 12 ms 1260 KB Ok
3 Correct 244 ms 16484 KB Ok
4 Correct 115 ms 8424 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 3 ms 620 KB Ok
7 Correct 54 ms 4332 KB Ok
8 Correct 1 ms 364 KB Ok
# 결과 실행 시간 메모리 Grader output
1 Correct 542 ms 32552 KB Ok
2 Correct 519 ms 32600 KB Ok
3 Correct 508 ms 32608 KB Ok
4 Correct 248 ms 16612 KB Ok
5 Correct 244 ms 16356 KB Ok
6 Correct 134 ms 8284 KB Ok
7 Incorrect 55 ms 1896 KB First number in answer is not x 3267 0
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 242 ms 7008 KB Ok
2 Correct 116 ms 3428 KB Ok
3 Correct 1 ms 364 KB Ok
4 Correct 0 ms 364 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 1 ms 364 KB Ok
7 Correct 12 ms 1260 KB Ok
8 Correct 244 ms 16484 KB Ok
9 Correct 115 ms 8424 KB Ok
10 Correct 1 ms 364 KB Ok
11 Correct 3 ms 620 KB Ok
12 Correct 54 ms 4332 KB Ok
13 Correct 1 ms 364 KB Ok
14 Correct 542 ms 32552 KB Ok
15 Correct 519 ms 32600 KB Ok
16 Correct 508 ms 32608 KB Ok
17 Correct 248 ms 16612 KB Ok
18 Correct 244 ms 16356 KB Ok
19 Correct 134 ms 8284 KB Ok
20 Incorrect 55 ms 1896 KB First number in answer is not x 3267 0
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 240 ms 16356 KB Ok
2 Correct 541 ms 32608 KB Ok
3 Correct 519 ms 32608 KB Ok
4 Correct 26 ms 2284 KB Ok
5 Correct 1 ms 364 KB Ok
6 Correct 55 ms 4332 KB Ok
7 Correct 511 ms 32660 KB Ok
8 Correct 2 ms 620 KB Ok
9 Correct 1 ms 364 KB Ok
10 Correct 2 ms 492 KB Ok
11 Correct 117 ms 8424 KB Ok
12 Correct 244 ms 16356 KB Ok