输出结果正确为什么提交不正确,哪里错了?

img

#include <iostream>
using namespace std;
int yy,mm,dd;
int p;
int a[2][13]={{0,31,29,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};
int main(){
    while(scanf("%d %d %d",&yy,&mm,&dd) != EOF){
        int day=0,sum=1,y=1990;
        for(;y <= yy; y++){
            if(y%400==0||y%4==0&&y%100!=0) p=0;
            else p = 1;
            for(int m = 1; m <= 12; m++){
                if(y == yy &&m == mm){
                   if(day%7==0){
                       sum-=1;
                   }
                   sum += (dd+1);
                   day+=dd;break;     
                }
                else{
                    if(day%7==0) sum-=1;
                    sum+=(a[p][m]+1);
                    day+=a[p][m];
                }
            }
        }
        int k = day/7;
        sum+=k;
        cout << sum << endl;
    }
    return 0;
}

如果逻辑没问题,可能最后一个输出不能有换行