Pagini recente » Cod sursa (job #42463) | Cod sursa (job #573376) | Cod sursa (job #61132) | Cod sursa (job #13078) | Cod sursa (job #2764472)
#include <fstream>
#include <iostream>
using namespace std;
int R, D;
int rez;
void read() {
ifstream f("pascal.in");
f >> R >> D;
f.close();
}
void solve() {
// randurile 0 si 1 nu pot avea elemente divizibile cu 2, 3, 4, 5, 6 => afisam 0
if (R == 0 || R == 1)
return;
int i, p2, p3, nr1, nr2, nr3, put, ok;
for (i = 1; i <= R; i++) {
p2 = 0, p3 = 0;
nr1 = R, nr2 = i - 1, nr3 = R - i + 1, put = 2;
while (nr1 >= put || nr2 >= put || nr3 >= put) {
p2 += nr1 / put;
p2 -= nr2 / put;
p2 -= nr3 / put;
put *= 2;
}
nr1 = R, nr2 = i - 1, nr3 = R - i + 1, put = 3;
while (nr1 >= put || nr2 >= put || nr3 >= put) {
p2 += nr1 / put;
p2 -= nr2 / put;
p2 -= nr3 / put;
put *= 3;
}
ok = 1;
if (D % 2 == 0 && p2 < 1)
ok = 0;
if (D % 4 == 0 && p2 < 2)
ok = 0;
if (D % 3 == 0 && p3 < 1)
ok = 0;
rez += ok;
}
}
void output() {
ofstream g("pascal.out");
g << rez;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}