Pagini recente » Rating Dinu Gabriel (gabi_dinu) | Cod sursa (job #2274337) | Cod sursa (job #981851) | Cod sursa (job #1018181) | Cod sursa (job #2914376)
#include <fstream>
using namespace std;
ifstream fin( "pascal.in" );
ofstream fout( "pascal.out" );
const int DIM = 5e6 + 1; // lmao
int v2[DIM], v3[DIM];
int main() {
int n, p;
fin >> n >> p;
for ( int i = 2; i <= n; ++i ) {
v2[i] = (i % 2 ? 0 : v2[i / 2] + 1);
v3[i] = (i % 3 ? 0 : v3[i / 3] + 1);
}
int res = 0, q2 = 0, q3 = 0, q5 = 0;
for ( int j = 1; j < n; ++j ) {
q2 += v2[n - j + 1] - v2[j];
q3 += v3[n - j + 1] - v3[j];
int aaa = n - j + 1, bbb = j;
while ( aaa % 5 == 0 ) {
aaa /= 5;
++q5;
}
while ( bbb % 5 == 0 ) {
bbb /= 5;
--q5;
}
res += ( (p == 2 && q2) ||
(p == 3 && q3) ||
(p == 4 && q2 > 1) ||
(p == 5 && q5) ||
(p == 6 && q2 && q3) );
}
fout << res;
fin.close();
fout.close();
return 0;
}