답안 #317167

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
317167 2020-10-29T04:38:05 Z daniel920712 Hidden Sequence (info1cup18_hidden) C++14
0 / 100
5 ms 256 KB
#include<bits/stdc++.h>
#include "grader.h"

using namespace std;
vector < pair < vector < int > , int > > all;
vector < int > temp;
vector < int > tt;
queue < pair < vector < int > , int > > BFS;
vector < int > ans,ans2,ans3;
vector < int > findSequence (int N)
{
    int i,j,ok=0,now=0,x1=0,y1=0,x;
    if(N==0)
    {
        for(i=0;i<(1<<(N/2+1));i++)
        {
            temp.clear();
            for(j=0;j<(N/2+1);j++)
            {
                if(i&(1<<j)) temp.push_back(1);
                else temp.push_back(0);
            }
            all.push_back(make_pair(temp,isSubsequence(temp)));
        }
        for(i=0;i<(1<<N);i++)
        {
            temp.clear();
            for(j=0;j<N;j++)
            {
                if(i&(1<<j)) temp.push_back(1);
                else temp.push_back(0);
            }
            ok=1;
            for(auto j:all)
            {
                now=0;
                for(auto k:temp)
                {
                    if(now<N/2+1&&k==j.first[now]) now++;
                }
                if(now==N/2+1&&j.second==0) ok=0;
                if(now!=N/2+1&&j.second==1) ok=0;
            }
            if(ok) return temp;
        }
        temp.clear();
        return temp;
    }
    else
    {
        x=N;
        for(i=0;i<N;i++)
        {
            temp.push_back(0);
            if(!isSubsequence(temp))
            {
                x=i;
                break;
            }
        }

        while(x1<x&&y1<N-x&&ans.size()<=N/2)
        {
            temp.clear();
            for(auto i:ans) temp.push_back(i);
            if(x-x1<=(N-x-y1))
            {
                temp.push_back(1);
                for(j=x1;j<x;j++) temp.push_back(0);
                if(isSubsequence(temp))
                {
                    y1++;
                    ans.push_back(1);
                }
                else
                {
                    x1++;
                    ans.push_back(0);
                }
            }
            else
            {
                temp.push_back(0);
                for(j=y1;j<N-x;j++) temp.push_back(1);
                if(isSubsequence(temp))
                {
                    x1++;
                    ans.push_back(0);
                }
                else
                {
                    y1++;
                    ans.push_back(1);
                }
            }

        }
        for(i=x1;i<x;i++) ans.push_back(0);
        for(i=y1;i<N-x;i++) ans.push_back(1);

        x1=0;
        y1=0;
        while(x1<x&&y1<N-x&&ans2.size()<=N/2)
        {

            temp.clear();
            for(auto i:ans2) temp.push_back(i);
            if(x-x1<=(N-x-y1))
            {
                //printf("aa\n");
                temp.insert(temp.begin(),1);
                for(j=x1;j<x;j++) temp.insert(temp.begin(),0);
                if(isSubsequence(temp))
                {
                    //printf("cc\n");
                    y1++;
                    ans2.insert(ans2.begin(),1);
                }
                else
                {
                    //printf("bb\n");
                    x1++;
                    ans2.insert(ans2.begin(),0);
                }
            }
            else
            {
                temp.insert(temp.begin(),0);
                for(j=y1;j<N-x;j++) temp.insert(temp.begin(),1);
                if(isSubsequence(temp))
                {
                    x1++;
                    ans2.insert(ans2.begin(),0);
                }
                else
                {
                    y1++;
                    ans2.insert(ans2.begin(),1);
                }
            }

        }
        for(i=x1;i<x;i++) ans2.insert(ans2.begin(),0);
        for(i=y1;i<N-x;i++) ans2.insert(ans2.begin(),1);

        ans3.clear();
        for(i=0;i<N;i++) ans3.push_back(0);
        for(i=0;i<ans.size();i++) ans3[i]=ans[i];
        for(i=0;i<ans2.size();i++)
        {
            //printf("%d\n",ans2[i]);
            ans3[N-(ans2.size()-i)]=ans2[i];
        }


        return ans3;
    }
}

Compilation message

hidden.cpp: In function 'std::vector<int> findSequence(int)':
hidden.cpp:62:39: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   62 |         while(x1<x&&y1<N-x&&ans.size()<=N/2)
      |                             ~~~~~~~~~~^~~~~
hidden.cpp:103:40: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
  103 |         while(x1<x&&y1<N-x&&ans2.size()<=N/2)
      |                             ~~~~~~~~~~~^~~~~
hidden.cpp:148:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  148 |         for(i=0;i<ans.size();i++) ans3[i]=ans[i];
      |                 ~^~~~~~~~~~~
hidden.cpp:149:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  149 |         for(i=0;i<ans2.size();i++)
      |                 ~^~~~~~~~~~~~
grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld
grader.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i=0; i<ans.size () && i < N; i++)
      |                   ~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 256 KB Output is not correct: The returned sequence does not match the hidden one
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 256 KB Output is not correct: The returned sequence does not match the hidden one
2 Halted 0 ms 0 KB -