結果

提出番号 1993
提出者 rickytheta
言語 C++
提出日時 2018-08-04 14:51:44
問題名 (64)Or Plus Max 2
結果 WA
点数 10%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 2ms 8080KB
2 AC 100% 2ms 8192KB
3 AC 100% 2ms 8432KB
4 AC 100% 31ms 8128KB
5 AC 100% 34ms 7632KB
6 AC 100% 31ms 7824KB
7 AC 100% 2ms 7792KB
8 AC 100% 5ms 8176KB
9 AC 100% 35ms 8096KB
10 AC 100% 1ms 8352KB
11 AC 100% 35ms 8352KB
12 AC 100% 31ms 7824KB
テストケース 結果 得点 実行時間 メモリ使用量
13 WA 0% 2ms 0KB
14 WA 0% 2ms 0KB
15 WA 0% 2ms 0KB
16 WA 0% 2ms 0KB
17 WA 0% 2ms 0KB
18 WA 0% 2ms 0KB
19 WA 0% 2ms 0KB
20 WA 0% 2ms 0KB
テストケース 結果 得点 実行時間 メモリ使用量
21 WA 0% 2ms 0KB
22 WA 0% 2ms 0KB
23 WA 0% 2ms 0KB
24 WA 0% 2ms 0KB
25 WA 0% 2ms 0KB
26 WA 0% 2ms 0KB
27 WA 0% 2ms 0KB
28 WA 0% 2ms 0KB
29 WA 0% 2ms 0KB
30 WA 0% 2ms 0KB
テストケース 結果 得点 実行時間 メモリ使用量
31 WA 0% 2ms 0KB
32 WA 0% 2ms 0KB
33 WA 0% 2ms 0KB
34 WA 0% 2ms 0KB
35 WA 0% 2ms 0KB
36 WA 0% 2ms 0KB
37 WA 0% 2ms 0KB
38 WA 0% 2ms 0KB
39 WA 0% 2ms 0KB
40 WA 0% 2ms 0KB
41 WA 0% 2ms 0KB

ソースコード

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

typedef int _loop_int;
#define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i)
#define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i)
#define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i)

#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define DEBUG_VEC(v) cout<<#v<<":";REP(i,v.size())cout<<" "<<v[i];cout<<endl
#define ALL(a) (a).begin(),(a).end()

#define CHMIN(a,b) a=min((a),(b))
#define CHMAX(a,b) a=max((a),(b))

// mod
const ll MOD = 1000000007ll;
#define FIX(a) ((a)%MOD+MOD)%MOD

int n,k,p;

int a[25];

int solve(){
  int ret = 0;
  REP(i,n){
    int xr = 0;
    int sm = 0;
    FOR(j,i,n){
      xr ^= a[j];
      sm += a[j];
      if(xr==sm)ret++;
    }
  }
  // REP(i,n)printf("%d ",a[i]);
  // printf(": %d\n",ret);
  return ret;
}

int dfs(int i){
  if(i==n){
    return solve()==k ? 1 : 0;
  }else{
    int ret = 0;
    FOR(x,1,p){
      a[i] = x;
      ret += dfs(i+1);
    }
    return ret;
  }
}

int main(){
  scanf("%d%d%d",&n,&k,&p);
  assert(n<=7 && p<=8);
  int ans = dfs(0);
  printf("%d\n",ans);
  return 0;
}