| 提出番号 | 1371 |
|---|---|
| 提出者 | E869120 |
| 言語 | C++ |
| 提出日時 | 2018-07-22 22:58:02 |
| 問題名 | (64)Or Plus Max 2 |
| 結果 | TLE |
| 点数 | 10% |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 1 | AC | 100% | 2ms | 7552KB |
| 2 | AC | 100% | 1ms | 8480KB |
| 3 | AC | 100% | 2ms | 8384KB |
| 4 | AC | 100% | 118ms | 8448KB |
| 5 | AC | 100% | 149ms | 7536KB |
| 6 | AC | 100% | 118ms | 8352KB |
| 7 | AC | 100% | 4ms | 8224KB |
| 8 | AC | 100% | 23ms | 8048KB |
| 9 | AC | 100% | 118ms | 8736KB |
| 10 | AC | 100% | 2ms | 8448KB |
| 11 | AC | 100% | 118ms | 7776KB |
| 12 | AC | 100% | 149ms | 8064KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 13 | TLE | 0% | 20002ms | 0KB |
| 14 | TLE | 0% | 20002ms | 0KB |
| 15 | TLE | 0% | 20001ms | 0KB |
| 16 | TLE | 0% | 20002ms | 0KB |
| 17 | TLE | 0% | 20001ms | 0KB |
| 18 | TLE | 0% | 20002ms | 0KB |
| 19 | TLE | 0% | 20001ms | 0KB |
| 20 | TLE | 0% | 20001ms | 0KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 21 | TLE | 0% | 20001ms | 0KB |
| 22 | TLE | 0% | 20002ms | 0KB |
| 23 | TLE | 0% | 20002ms | 0KB |
| 24 | TLE | 0% | 20001ms | 0KB |
| 25 | TLE | 0% | 20001ms | 0KB |
| 26 | TLE | 0% | 20002ms | 0KB |
| 27 | TLE | 0% | 20001ms | 0KB |
| 28 | TLE | 0% | 20001ms | 0KB |
| 29 | TLE | 0% | 20001ms | 0KB |
| 30 | TLE | 0% | 20002ms | 0KB |
| テストケース | 結果 | 得点 | 実行時間 | メモリ使用量 |
|---|---|---|---|---|
| 31 | TLE | 0% | 20002ms | 0KB |
| 32 | TLE | 0% | 20002ms | 0KB |
| 33 | TLE | 0% | 20001ms | 0KB |
| 34 | TLE | 0% | 20002ms | 0KB |
| 35 | TLE | 0% | 20002ms | 0KB |
| 36 | TLE | 0% | 20002ms | 0KB |
| 37 | TLE | 0% | 20002ms | 0KB |
| 38 | TLE | 0% | 20002ms | 0KB |
| 39 | TLE | 0% | 20001ms | 0KB |
| 40 | TLE | 0% | 20001ms | 0KB |
| 41 | TLE | 0% | 20002ms | 0KB |
#include <iostream>
#include <vector>
using namespace std;
long long N, K, P, ret = 0;
int xor_sum(vector<int>x) {
int cnts = 0;
for (int i = 0; i < x.size(); i++) {
int s1 = 0, s2 = 0;
for (int j = i; j < x.size(); j++) {
s1 |= x[j]; s2 += x[j]; if (s1 != s2) break;
cnts++;
}
}
return cnts;
}
void dfs(int pos, vector<int>v) {
if (pos == N) {
if (xor_sum(v) == K) ret++;
return;
}
for (int i = 1; i < P; i++) {
vector<int>vv = v; vv.push_back(i);
dfs(pos + 1, vv);
}
}
int main() {
cin >> N >> K >> P;
dfs(0, vector<int>{});
cout << ret << endl;
return 0;
}