Multiple of three - DSA series 1st contest

Can any one help me why this code is giving TLE?

#include <iostream>
using namespace std;
#define ll long long int
int main() {

    ll t;
    cin>>t;
    while(t--)
    {
        ll k,d0,d1;
        cin>>k>>d0>>d1;
        ll sum=0;
        d0=d0%10;
        d1=d1%10;
        
        sum=d0+d1;
        if(k<=2)
        {
            if(sum%3==0)
                cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
            continue;
        }
        k=k-2;
        //9
      //  cout<<"F"<<k<<endl;
        ll es=2+4+6+8;
        ll prev=d0+d1;
        sum+=prev;
        k--;
        while(1)
        {
            if(k==0)
                break;
         //   cout<<"IN"<<sum<<endl;
            if(prev==5 || prev ==0)
                break;
            else if(prev==9 || prev ==7)
            {
                prev = prev *2;
                prev=prev %10;
                sum+=prev;
                k--;
    
            }
            
            if(prev==2 || prev == 4 || prev == 8 || prev ==6)
            {
                    sum = sum + (k/4)*es;
                 // cout<<"IN2"<<sum<<endl;
                    k=k-(k/4)*4;
                   // cout<<k<<endl;
                    if(prev==6)
                    {
                        if(k%4==1)
                            sum+=2;
                        else if(k%4==2)
                            sum+=6;
                        else if(k%4==3)
                            sum+=14;
                            
                            k=0;
                    }
                     else  if(prev==2)
                    {
                        if(k%4==1)
                            sum+=4;
                        else if(k%4==2)
                            sum+=12;
                        else if(k%4==3)
                            sum+=18;
                            k=0;
                            
                    }
                    else if(prev==4)
                    {
                        if(k%4==1)
                            sum+=8;
                        else if(k%4==2)
                            sum+=14;
                        else if(k%4==3)
                            sum+=16;
                            
                            k=0;
                    }
                                    else                    if(prev==8)
                    {
                        if(k%4==1)
                            sum+=6;
                        else if(k%4==2)
                            sum+=8;
                        else if(k%4==3)
                            sum+=12;
                            k=0;
                            
                    }
                                                
            }

            
            if(k==0)
                break;
        }
        
     
    //    cout<<"Final"<<sum<<endl;
        if(sum%3==0 )
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    
	return 0;
}


/*
6 1 1
1 1 2 4 8 6


*/







Sorry , I found bug after posting this that i not handle the prev==3 & not performed the %10 at first prev value assign.
So i got tle
Now this is solve …