Submission #173660

# Submission time Handle Problem Language Result Execution time Memory
173660 2020-01-04T21:36:51 Z RafaelSus "The Lyuboyn" code (IZhO19_lyuboyn) C++14
3 / 100
1000 ms 2620 KB
#include <bits/stdc++.h>
 
using namespace std;
const int N = 1e5 + 5;
typedef long long ll;
const ll inf=1e15;
#define pb push_back
const int INF=(0x3f3f3f3f);

int tod(vector<int>a){
  int res=0;
  reverse(a.begin(),a.end());
  for(int i=0;i<a.size();i++){
    res+=a[i]*(1<<i);
  }
  return res;
}

int tod(string s){
  int res=0;
  reverse(s.begin(),s.end());
  for(int i=0;i<s.size();i++){
    res+=(s[i]-'0')*(1<<i);
  }
  return res;
}

string tobin(int x,int h){
  string res="";
  if(x==0){
    res="0";
    while(res.size()<h)res+="0";
    return res;
  }
  while(x){
    if(x%2)res+="1";
    else res+="0";
    x/=2;
  }
  while(res.size()<h)res+="0";
  reverse(res.begin(),res.end());
  return res;
}
int n,k,t;

int used[(1<<18)+5];

int main(){
  //ios::sync_with_stdio(false);
  //cin.tie(0);cout.tie(0);
  
  
  cin>>n>>k>>t;
  string s;
  cin>>s;
  int x=tod(s);
  vector<int>a(n,0);
  for(int i=0;i<k;i++){
    a[n-1-i]=1;
  }
  if(k%2==0){
    cout<<"-1";
    return 0;  
  }
  used[x]=1;
  vector<int>answ;
  answ.pb(x);
  int tmp=x;
  while(answ.size()<(1<<n)){
    do{
      if(answ.size()==(1<<n))break;
      if(!used[tod(a)^tmp]){
        answ.pb(tod(a)^tmp);
        tmp^=tod(a);
        used[tmp]=1;
        break;
      }
    }while(next_permutation(a.begin(),a.end()));
  }
  cout<<(1<<n)<<'\n';
  for(int i=0;i<answ.size();i++){
    cout<<tobin(answ[i],n)<<'\n';
  }
}

Compilation message

lyuboyn.cpp: In function 'int tod(std::vector<int>)':
lyuboyn.cpp:13:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<a.size();i++){
               ~^~~~~~~~~
lyuboyn.cpp: In function 'int tod(std::__cxx11::string)':
lyuboyn.cpp:22:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<s.size();i++){
               ~^~~~~~~~~
lyuboyn.cpp: In function 'std::__cxx11::string tobin(int, int)':
lyuboyn.cpp:32:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(res.size()<h)res+="0";
           ~~~~~~~~~~^~
lyuboyn.cpp:40:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(res.size()<h)res+="0";
         ~~~~~~~~~~^~
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:69:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(answ.size()<(1<<n)){
         ~~~~~~~~~~~^~~~~~~
lyuboyn.cpp:71:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(answ.size()==(1<<n))break;
          ~~~~~~~~~~~^~~~~~~~
lyuboyn.cpp:81:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<answ.size();i++){
               ~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Ok
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Not a cycle!
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Ok
2 Correct 2 ms 252 KB Ok
3 Correct 2 ms 400 KB Ok
4 Correct 2 ms 376 KB Ok
5 Correct 2 ms 376 KB Ok
6 Correct 2 ms 376 KB Ok
7 Correct 2 ms 376 KB Ok
8 Correct 2 ms 376 KB Ok
# Verdict Execution time Memory Grader output
1 Execution timed out 1071 ms 2540 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 368 KB Ok
2 Execution timed out 1084 ms 376 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1075 ms 2620 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1071 ms 2540 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1081 ms 1524 KB Time limit exceeded
2 Halted 0 ms 0 KB -