MULTHREE Logic Problem

can anyone help me find the bug in my code?
what’s wrong in my logic?

void solve()
{
    long long k,sum=0;
    int d0,d1,d2,d3,d4,d5,d6,nfg,rem;
    cin>>k>>d0>>d1;
    d2=(d0+d1)%10;
    d3=(2*d2)%10;
    d4=(4*d2)%10;
    d5=(8*d2)%10;
    d6=(6*d2)%10;
    nfg=(k-3)/4;
    rem=(k-3)%4;
    sum=sum+d0+d1+d2;
    sum=sum+nfg*(d3+d4+d5+d6);
    if(rem==1)
    {
        sum=sum+d3;
    }
    else if(rem==2)
    {
        sum=sum+d3+d4;
    }
    else if(rem==3)
    {
        sum=sum+d3+d4+d5;
    }
    if(k==2)
    {
        sum=d0+d1;
    }
    if(k==3)
    {
        sum=d0+d1+d2;
    }
    if(sum %3==0)
    {
        cout<<"YES"<<endl;
    }
    else
    {
        cout<<"NO"<<endl;
    }
}
nfg=(k-3)/4;

where k\leq10^{12}, and range of int is 2\times10^9.

thanks