Submission #767768

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
7677682023-06-27 07:05:54PurpleCrayonCouncil (JOI23_council)C++17
100 / 100
713 ms46388 KiB
#include <bits/stdc++.h>
using namespace std;
#define sz(v) int(v.size())
#define ar array
typedef long long ll;
const int N = 3e5+10, MOD = 1e9+7;
const int M = 21;
int n, m, a[N], cnt[M];
// minimal number of things to turn off so that it becomes a subset of ~bad
ar<ar<int, 2>, 2> best[1 << M], sub[1 << M];
ar<ar<int, 2>, 2> add(ar<ar<int, 2>, 2> base, ar<int, 2> x) {
for (ar<int, 2> y : base) if (y[1] == x[1]) return base;
if (x < base[0]) {
swap(base[0], base[1]);
base[0] = x;
} else if (x < base[1]) {
base[1] = x;
}
return base;
}
ar<ar<int, 2>, 2> add(ar<ar<int, 2>, 2> base, ar<ar<int, 2>, 2> x) {
return add(add(base, x[0]), x[1]);
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

council.cpp: In function 'void solve()':
council.cpp:48:62: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   48 |         for (int i = (1 << m) - 1; i >= 0; i--) if ((i >> j) & 1 ^ 1) {
      |                                                     ~~~~~~~~~^~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...