Code: Select all
#include<iostream>
using namespace std;
struct data{
int d;
int m;
int y;
long long int c;
}MI[1009];
int main()
{
int N;
while(cin>>N && N!=0)
{
for(int i=0;i<N;i++)
cin>>MI[i].d>>MI[i].m>>MI[i].y>>MI[i].c;
int res=0,cd=0;
for(int i=0;i<N-1;i++)
{
if(MI[i].y==MI[i+1].y)
{
if(MI[i].m==MI[i+1].m)
{
if((MI[i].d+1)==MI[i+1].d)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
{
if(MI[i+1].m==(MI[i].m+1) || (MI[i].m==12 && MI[i+1].m==1))
{
if(MI[i].m==2)
{
if(MI[i].y%4==0 && MI[i].y%100!=0)
{
if(MI[i].d==29 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
if(MI[i].d==28 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
if(MI[i].m<7)
{
if(MI[i].m%2==0)
{
if( MI[i].d==30 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
if(MI[i].d==31 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
{
if(MI[i].m==7 && MI[i].d==31 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
if(MI[i].m%2==0)
{
if( MI[i].d==31 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
else
if(MI[i].d==30 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;continue;}
}
}
}
}
else
{
if(MI[i+1].y==(MI[i].y+1) && MI[i].m==12 && MI[i+1].m==1 && MI[i].d==31 && MI[i+1].d==1)
{res+=MI[i+1].c-MI[i].c;cd++;}
}
}
cout<<cd<<" "<<res<<endl;
}
}