求找错..在某OJ上WA

P2010 [NOIP2016 普及组] 回文日期

xyz0815 @ 2019-05-29 16:29:17

luogu上AC了,然而某OJ上WA

求找错

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
char a[10],b[10],s[10];
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int cnt,ys,yf,ms,mf,ds,df;
int con(char x[],int y,int z)//将字符串转为数字 
{
    int s=0;
    for(int i=y;i<=z;i++)
    {
        s+=int(x[i]-'0')*pow(10,double(z-i));
    }
    return s;
}
void cons(int x,int y,int z)//将数字转为字符串 
{
    for(int i=y;i<=z;i++)
    {
        s[i]=char((x/int(pow(10,double(z-i))))%10)+'0';
    }
    return;
}
bool check(char x[],char y[])//判断字符是否回文 
{
    char z[10];
    int c=0;
    for(int i=7;i>=0;i--)
        z[c++]=y[i];
    z[c]='\0';
    if(strcmp(z,x)==0)
        return 1;
    else
        return 0;
}
bool run(int y)
{
    if((y%4==0&&y%100!=0)||y%400==0)
        return 1;
    else 
        return 0;
}
bool ok(int y,int md)
{
    int m,d;
    m=md/1000%10*10+md/100%10;
    d=md/10%10*10+md%10;
    if(y==ys)
    {
        if(m<ms||(m==ms&&d<ds))
            return 0;
    }
    if(y==yf)
    {
        if(m>mf||(m==mf&&d>df))
            return 0;
    }
    if(m>=1&&m<=12)
    {
        if(m==2)
        {
            if(run(y))
            {
                if(d>=1&&d<=mon[m]+1)
                {
                    return 1;
                }
            }   
        }
        if(d>=1&&d<=mon[m])
        {
            return 1;
        }
    }
    return 0;
}
int main()
{
    cin>>a>>b;
    int i,j,t;
    char m[5];
    ys=con(a,0,3);
    yf=con(b,0,3);
    ms=con(a,4,5);
    mf=con(b,4,5);
    ds=con(a,6,7);
    df=con(b,6,7);
    if(ys==yf&&ms==mf&&ds==df)
    {
        if(check(a,b))
        {
            cout<<1;
            return 0;
        }
        else
        {
            cout<<0;
            return 0;
        }
    }
    for(i=ys;i<=yf;i++)
    {
        t=0;
        cons(i,0,3);
        for(j=3;j>=0;j--)
        {
            m[t++]=s[j];
        }
        t=con(m,0,3);
        if(ok(i,t))
        {
            cnt++;
        }
    }
    cout<<cnt;
    return 0;
}

by zhanghanbin @ 2019-05-29 16:35:20

I don't know


|