| 记录编号 | 1847 | 评测结果 | AAAAAAAAAA | 
    
        | 题目名称 | 88.到天宫做客 | 最终得分 | 100 | 
    
        | 用户昵称 |  BYVoid | 是否通过 | 通过 | 
    
        | 代码语言 | C++ | 运行时间 | 0.005 s | 
    
        | 提交时间 | 2008-09-08 22:43:13 | 内存使用 | 0.26 MiB | 
    
    
    
    		显示代码纯文本
		
		#include <iostream>
#define MAX 366
using namespace std;
typedef struct
{
	int m,d;
} date;
int N;
date D[MAX];
int md[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
inline int cmp(const void *a,const void *b)
{
	if (((date *)a)->m < ((date *)b)->m)
		return -1;
	if (((date *)a)->m > ((date *)b)->m)
		return 1;
	if (((date *)a)->d < ((date *)b)->d)
		return -1;
	return 1;
}
void init()
{
	int i;
	freopen("heaven.in","r",stdin);
	freopen("heaven.out","w",stdout);
	cin >> N;
	D[0].m=1;
	D[0].d=0;
	for (i=1;i<=N;i++)
		cin >> D[i].m >> D[i].d;
	D[N+1].m=12;
	D[N+1].d=32;
	qsort(D,N+1,sizeof(D[0]),cmp);
}
int datediff(int a,int b)
{
	if (D[a].m==D[b].m)
		return D[b].d-D[a].d-1;
	int dt=	md[ D[a].m ] - D[a].d + D[b].d -1;
	for (int i=D[a].m+1;i<=D[b].m-1;i++)
		dt+=md[i];
	return dt;
}
void print(int d)
{
	double t=d / 366.0 * 86400.0;
	if (t-(int)t>=0.5)
		cout << (int)t+1;
	else
		cout << (int)t;
}
void solve()
{
	int i,l,maxl=0;
	for (i=1;i<=N+1;i++)
	{
		l=datediff(i-1,i);
		if (l>maxl)
			maxl=l;
	}
	print(maxl);
}
int main()
{
	init();
	solve();
	return 0;
}