結果

提出番号 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;
}