0分求助
查看原帖
0分求助
134066
Pethly_Cat楼主2020/11/9 19:33

不管怎么改都是零分 TUT

#include<bits/stdc++.h>
using namespace std;
long long q,y=-4713,r=1,d=0,month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool flag=false;
struct node
{
  long long x,num;
}a[100001];
long long xx[100001],yy[100001],zz[100001];
bool cmp(node a,node b)
{
  return a.x<b.x;
}
long long year(long long x)
{
  if(x<=1582) x-=1;
  if(x<=1582) return x%4==0? 29:28;
  if(x%400==0||x%4==0&&x%100!=0) return 29;
  return 28;
}
void fun(long long x)
{
  d+=x;
  while(d>=year(r>2? y+1:y)+337) d-=year(y)+337,y++;
  month[2]=year(y);
  while(d>month[r]){
  	d-=month[r];
  	r++;
  	if(r>12) r=1;
  }
  if(y*10000+r*100+d>15821005&&flag==false) flag=true,d+=10;
  while(d>=year(y)+337) d-=year(y)+337,y++;
  month[2]=year(y);
  while(d>=month[r]){
  	d-=month[r];
  	r++;
  	if(r>12) r=1;
  }
  if(y>=0) y++;
}
int main()
{
  scanf("%lld",&q);
  for(int i=1;i<=q;i++){
  	scanf("%lld",&a[i].x);
  	a[i].num=i;
  }
  sort(a+1,a+q+1,cmp);
  y=-4713,r=1,d=1;
  for(int i=1;i<=q;i++){
  	fun(a[i].x-a[i-1].x);
  	xx[a[i].num]=y,yy[a[i].num]=r,zz[a[i].num]=d;
  }
  for(int i=1;i<=q;i++){
  	if(xx[i]<0) printf("%lld %lld %lld BC\n",zz[i],yy[i],abs(xx[i]));
  	else printf("%lld %lld %lld\n",zz[i],yy[i],xx[i]);
  }
  return 0;
}
2020/11/9 19:33
加载中...