Submission #389573

#TimeUsernameProblemLanguageResultExecution timeMemory
389573casperwangBinary Subsequences (info1cup17_binary)C++14
4.48 / 100
285 ms1216 KiB
#include <bits/stdc++.h> #define int long long #define pb emplace_back using namespace std; #define debug(args...) kout("[ " + string(#args) + " ]", args) void kout() { cerr << endl; } template <class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ',kout(b...); } template <class T> void pary(T L, T R) { while (L != R) cerr << *L << " \n"[++L==R]; } const int MAXN = 2000; const int K = 11; const int INF = 1e18; int T, N; vector <string> arr; vector <string> tmp; bool ans[MAXN+1]; string str[MAXN+1]; bool check(const string &a, const string &b) { int j = 0; for (int i = 0; i < a.size(); i++) if (j < b.size() && a[i] == b[j]) j++; return j == b.size(); } void init() { for (int i = 1; i <= K; i++) { for (int j = 0; j < (1<<i); j++) { string now = ""; for (int k = 0; k < i; k++) now += ((j & (1<<k)) ? '1' : '0'); int cnt = 1; for (string s : arr) cnt += check(now, s); if (ans[cnt] == 0) ans[cnt] = 1, str[cnt] = now; tmp.pb(now); } for (string s: tmp) arr.pb(s); tmp.clear(); } } signed main() { ios_base::sync_with_stdio(0), cin.tie(0); init(); cin >> T; while (T--) { cin >> N; cout << -1 << '\n'; if (ans[N]) { for (int i = 0; i < str[N].size(); i++) cout << str[N][i] << " \n"[i==str[N].size()-1]; } else { cout << -1 << '\n'; } } return 0; }

Compilation message (stderr)

binary.cpp: In function 'bool check(const string&, const string&)':
binary.cpp:21:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  for (int i = 0; i < a.size(); i++)
      |                  ~~^~~~~~~~~~
binary.cpp:22:9: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |   if (j < b.size() && a[i] == b[j]) j++;
      |       ~~^~~~~~~~~~
binary.cpp:23:11: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  return j == b.size();
      |         ~~^~~~~~~~~~~
binary.cpp: In function 'int main()':
binary.cpp:51:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |    for (int i = 0; i < str[N].size(); i++)
      |                    ~~^~~~~~~~~~~~~~~
binary.cpp:52:33: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |     cout << str[N][i] << " \n"[i==str[N].size()-1];
      |                                ~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...