Submission #387643

#TimeUsernameProblemLanguageResultExecution timeMemory
387643casperwangCheerleaders (info1cup20_cheerleaders)C++14
26 / 100
2076 ms1356 KiB
#include <bits/stdc++.h> #define pb emplace_back #define All(x) x.begin(), x.end() #define pii pair<int,int> #define ff first #define ss second 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 = 17; int N; int ans; pii op; string ops; vector <int> a, c, fin; int val[MAXN+1]; inline int lb(int a) { return a &- a; } void init() { a.resize(1<<N); c.resize(1<<N); } void build() { } int cnt() { int s = 0; for (int i = 0; i < (1<<N); i++) { for (int j = i+1; j < (1<<N); j++) { s += c[i] > c[j]; } } return s; } void test(string str, vector <int> c) { for (int i = 0; i < str.size(); i++) { if (str[i] == '2') { for (int j = 0; j < (1<<N); j++) { c[j] = (1<<(N-1)) * (c[j] & 1) + c[j] / 2; } } else if (str[i] == '1') { for (int j = 0; j < (1<<N); j++) { c[j] ^= (1<<(N-1)); } } } pary(All(c)); } string solve(pii op) { string str; debug(op.ff, op.ss); for (int i = 0; i < op.ff; i++) str += '2'; for (int i = 0; i < N; i++) { str += '2'; if ((1<<i) & op.ss) { str += '1'; } } return str; } signed main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> N; init(); for (int i = 0; i < (1<<N); i++) cin >> a[i], c[a[i]] = i; ans = cnt(); a = c; for (int j = 0; j < N; j++) { // build(); int x = 0; vector <int> tmp = c; for (int i = 1; i < (1<<N); i++) { for (int k = 0; k < (1<<N); k++) { c[k] ^= lb(i); } x ^= lb(i); int C = cnt(); if (C < ans) { ans = C, op = pii(j, x); fin = c; } } c = tmp; for (int i = 0; i < (1<<N); i++) { c[i] = (1<<(N-1)) * (c[i] & 1) + c[i] / 2; } } cout << ans << '\n'; cout << solve(op) << '\n'; return 0; }

Compilation message (stderr)

cheerleaders.cpp: In function 'void test(std::string, std::vector<int>)':
cheerleaders.cpp:44:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |  for (int i = 0; i < str.size(); i++) {
      |                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...