Cod sursa(job #2104781)

Utilizator laraamy16Cioc Amelia laraamy16 Data 12 ianuarie 2018 11:50:39
Problema Pascal Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
char v[5000001];
int fp[3], ep[3], nf;
int r, d, nr = 0;
void desc()
{
    switch(d)
    {
    case 2:
    case 3:
    case 5:
        nf = 1;
        fp[1] = d;
        ep[1] = 1;
        break;
    case 4:
        nf = 1;
        fp[1] = 2;
        ep[1] = 2;
        break;
    case 6:
        nf = 2;
        fp[1] = 2;
        fp[2] = 3;
        ep[1] = ep[2] = 1;
    }
}
int expp(int n, int p)
{
    int e = 0;
    while(p <= n)
    {
        e += n / p;
        p *= p;
    }
    return e;
}
int divid(int k)
{
    for(int i = 1; i <= nf; i++)
    {
        int e1 = expp(r, fp[i]);
        int e2 = expp(r - k, fp[i]) + expp(k, fp[i]);
        cout << e1 << ' ' << e2 << endl;
        if(e1 - e2 < ep[i])
            return 0;
    }
    return 1;
}
int main()
{
    f >> r >> d;
    desc();
    int r2 = (r + 1) >> 1;
    for(int k = 1; k < r2; k++)
        nr += 2 * divid(k);
    if((r & 1) == 0)
        nr += divid(r2);
    g << nr;
    return 0;
}