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
*/