Pagini recente » Cod sursa (job #3030743) | Cod sursa (job #3287680) | Cod sursa (job #753693) | Cod sursa (job #2453868) | Cod sursa (job #2193184)
#include <stdio.h>
#include <vector>
using namespace std;
long long row, divider;
vector<long long> computedHalfRow(long long index) {
vector<long long> line;
line.push_back(1);
for ( int k = 0; k < index / 2; k++) {
line.push_back(line[k] * (index - k) / (k + 1));
}
return line;
}
int main() {
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%lld %lld", &row, ÷r);
if (row == 0 || row == 1) {
printf("0\n");
return 0;
}
vector<long long> halfRow = computedHalfRow(row);
long long counter = 0;
long long limit = halfRow.size();
if (row % 2 == 0)
{
limit -= 1;
if (halfRow[halfRow.size() - 1] % divider == 0)
{
counter++;
}
}
for (long long i = 0; i < limit; i++) {
if (halfRow[i] % divider == 0) {
counter += 2;
}
}
printf("%lld\n", counter);
return 0;
}