Submission #3414066
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
/*
templates for competitive programming
type long long -> type ll
define constants : EPS, INF, MOD, PI
define macros : REP, FOR, ALL, SORT, REVERSE
define number theory functions: qp(a, b), qp(a, b, mo), gcd(a, b)
define dx, dy
*/
typedef long ll;
const double EPS = (1e-7);
const int INF =(1e9);
const double PI = (acos(-1));
const int MOD = (int(1e9) + 7);
#define REP(i, n) for(int i = 0; i < (int)(n); i++)
#define FOR(i, a, b) for (int i = (a); i < (b); i++)
#define ALL(x) (x).begin(),(x).end()
#define SORT(x) sort((x).begin(), (x).end())
#define REVERSE(x) reverse((x).begin(), (x).end())
#define SZ(x) ((int)(x).size())
#define dump(x) cerr<< #x << "= " << (x) << endl;
int gcd(int a,int b){return b?gcd(b,a%b):a;};
ll power(ll a, ll b){
if (b == 0) return 1;
else if (b % 2 == 0) return power(a * a, b / 2);
else return a * power(a, b - 1);
}
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
void solve() {
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
int n, a;
cin >> n >> a;
vector<int> x(n);
REP(i, n){
int xi;
cin >> xi;
x[i] = xi - a;
}
vector<int> x_plus;
vector<int> x_minus;
int x_zero = 0;
REP(i, n){
if (x[i] > 0){
x_plus.push_back(x[i]);
}
else if (x[i] < 0){
x_minus.push_back(- x[i]);
}
else{
x_zero ++;
}
}
const int MAX_S = 50 * 50;
vector<ll> s_plus(MAX_S);
vector<ll> s_minus(MAX_S);
s_plus[0] = s_minus[0] = 1;
REP(i, x_plus.size()){
for(int j = MAX_S; j > 0; j--){
if (j >= x_plus[i]){
s_plus[j] += s_plus[j - x_plus[i]];
}
}
}
REP(i, x_minus.size()){
for(int j = MAX_S; j > 0; j--){
if (j >= x_minus[i]){
s_minus[j] += s_minus[j - x_minus[i]];
}
}
}
ll ans = 0;
REP(i, MAX_S){
ans += s_plus[i] * s_minus[i];
}
ans *= pow(2, x_zero);
cout << ans - 1 << endl;
}
Submission Info
Submission Time |
|
Task |
C - Tak and Cards |
User |
genkinanodesu |
Language |
C++14 (GCC 5.4.1) |
Score |
300 |
Code Size |
2214 Byte |
Status |
AC |
Exec Time |
1 ms |
Memory |
256 KB |
Judge Result
Set Name |
Sample |
Subtask1 |
All |
Score / Max Score |
0 / 0 |
200 / 200 |
100 / 100 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
example_01.txt, example_02.txt, example_03.txt, example_04.txt |
Subtask1 |
example_01.txt, example_02.txt, example_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt |
All |
example_01.txt, example_02.txt, example_03.txt, example_04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt |
Case Name |
Status |
Exec Time |
Memory |
example_01.txt |
AC |
1 ms |
256 KB |
example_02.txt |
AC |
1 ms |
256 KB |
example_03.txt |
AC |
1 ms |
256 KB |
example_04.txt |
AC |
1 ms |
256 KB |
subtask1_01.txt |
AC |
1 ms |
256 KB |
subtask1_02.txt |
AC |
1 ms |
256 KB |
subtask1_03.txt |
AC |
1 ms |
256 KB |
subtask1_04.txt |
AC |
1 ms |
256 KB |
subtask1_05.txt |
AC |
1 ms |
256 KB |
subtask1_06.txt |
AC |
1 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 KB |
subtask1_08.txt |
AC |
1 ms |
256 KB |
subtask1_09.txt |
AC |
1 ms |
256 KB |
subtask2_01.txt |
AC |
1 ms |
256 KB |
subtask2_02.txt |
AC |
1 ms |
256 KB |
subtask2_03.txt |
AC |
1 ms |
256 KB |
subtask2_04.txt |
AC |
1 ms |
256 KB |
subtask2_05.txt |
AC |
1 ms |
256 KB |
subtask2_06.txt |
AC |
1 ms |
256 KB |
subtask2_07.txt |
AC |
1 ms |
256 KB |
subtask2_08.txt |
AC |
1 ms |
256 KB |
subtask2_09.txt |
AC |
1 ms |
256 KB |
subtask2_10.txt |
AC |
1 ms |
256 KB |
subtask2_11.txt |
AC |
1 ms |
256 KB |