Cod sursa(job #2015255)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 25 august 2017 15:57:10
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;
int l1[5000001],l2[5000001];
ifstream f("pascal.in");
ofstream g("pascal.out");
int main()
{
    int r,d,ct=0,i,x,nr,j,z;
    f>>r>>d;
    if(d==4) d=2,ct=1;
    for(i=1; i<=r; i++)
    {
        x=i;
        if(d!=6)
            l1[i]=l1[i/d]+1;
        else
        {
            l1[i]=l1[i/2]+1;
            l2[i]=l2[i/3]+1;
        }
    }
    for(i=1; i<=r; ++i)
        l1[i]=l1[i-1]+l1[i];
    if(d==6)
        for(i=1; i<=r; ++i)
            l2[i]=l2[i-1]+l2[i];
    nr=0;
    z=(r-1)/2;
    for(i=1; i<=z; ++i)
    {
        x=l1[r]-l1[i]-l1[r-i];
        if(ct==1) x/=2;
        if(d!=6 && x>0) nr+=2;
        if(d==6 && x>0 && l2[r]-l2[i]-l2[r-i]>0) nr+=2;
    }
    if(r%2==0){
        x=l1[r]-l1[i]-l1[r-i];
        if(ct==1) x/=2;
        if(d!=6 && x>0) nr++;
        if(d==6 && x>0 && l2[r]-l2[i]-l2[r-i]>0) ++nr;
    }
    g<<nr;

    return 0;
}