rt
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdlib>
#include<algorithm>
#include<queue>
#include<cmath>
#define fru(i,j,k) for(register int i=j;i<=k;i++)
#define frd(i,j,k) for(register int i=j;i>=k;i--)
#define finfout(str) freopen(#str".in","r",stdin);freopen(#str".out","w",stdout);
#define pc(x) putchar(x)
using namespace std;
namespace usegetin
{
char c=' ';
long long in(void)
{
long long x=0,f=1;
while(!isdigit(c)){
if(c=='-')f=-f;
c=getchar();
}
while(isdigit(c))
{
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
return x*f;
}
template<typename t>
void out(t x)
{
if(x<0)pc('-'),x=-x;
if(x>9)out(x/10);
pc(x%10+'0');
}
};
using usegetin::in;using usegetin::out;
const int maxn=500012;
using ll = long long;
const int mod=1e9+7;
ll t,lve,n,nl[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
const ll fyds=2299161;
inline int func(int n)
{
return ((n<1582)?((n%4)?365:366):(((!(n%4)&&(n%100))||!(n%400))?366:365));
}
int main()
{
//finfout(julian3);
//freopen("putout.out","w",stdout);
t=in();
while(t--)
{
lve=in()+1;
if(lve<=fyds)
{
n=-4712+(lve/1461)*4;
lve%=1461;
while(lve>((n%4)?365:366))
{
lve-=((n%4)?365:366);
n++;
}
//cout<<n<<' '<<lve<<endl;
if(!lve)
{
n--;
lve=func(n);
}
if(func(n)==366)nl[2]++;
fru(i,1,12)
if(lve>nl[i])
lve-=nl[i];
else
{
out(lve);pc(' ');out(i);pc(' ');out(n>0?n:(1-n));pc(' ');if(n<=0)pc('B'),pc('C');
pc('\n');
//bl=true;
break;
}
if(func(n)==366)nl[2]--;
}
else
{
//cout<<n<<' '<<lve<<endl;
lve-=1721426;
n=1+(lve/146097)*400;
lve%=146097;
int tmp;
//cout<<n<<' '<<lve<<endl;
while(lve>(tmp=func(n)))
{
//cout<<(n=6100)<<' '<<((((!(n%4)&&(n%100))||!(n%400))?355:366))<<endl;
lve-=tmp;
n++;
}
if(!lve)
{
n--;
lve=func(n);
}
if(func(n)==366)nl[2]++;
//bool bl=false;
fru(i,1,12)
if(lve>nl[i])
lve-=nl[i];
else
{
out(lve);pc(' ');out(i);pc(' ');out(n);
pc('\n');
//bl=true;
break;
}
//if(!bl)cout<<"felixesintot mushvase lujunpping233";
if(func(n)==366)nl[2]--;
}
}
return 0;
}
吐了,调了一下午