fork download
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int main()
  5. {
  6. int y,n,d,c=0; // c差幾天
  7. int t ; //檢查閏年 1為潤
  8. scanf("%d",&y); //年分 y
  9. scanf("%d",&d); //星期幾 d
  10. scanf("%d",&n); //幾筆數據 n
  11. int k;
  12. k = 2 * n;
  13. int a[k],i,j,ans[n],m[12];
  14. //判斷閏年
  15. if(y % 400==0 || (y % 4 == 0 && y % 100 != 0))
  16. {m[0] = 31 ;m[2] = 31 ;m[4] = 31 ;m[6] = 31 ;m[7] = 31 ;m[9] = 31 ;m[11] = 31 ;m[1] = 29;
  17. m[3]=30 ;m[5]=30 ;m[8]=30 ;m[10]=30 ;t=1;}
  18. else{m[0] = 31 ;m[2] = 31 ;m[4] = 31 ;m[6] = 31 ;m[7] = 31 ;m[9] = 31 ;m[11] = 31 ;m[1] = 28 ;m[3]=30 ;m[5]=30 ;m[8]=30 ;m[10]=30 ;t=0;}
  19. //printf("%d",n);
  20.  
  21. // 輸入 日期
  22. for(i=0;i<2*n;i++)
  23. scanf("%d",&a[i]);
  24. /*for(i=0;i<2*n;i++)
  25. printf("%d",a[i]);*/
  26.  
  27. for(i=0;i<n;i++){
  28. for(j=0,c=0;j<a[2*i]-1;j++)
  29. {c = c + m[j] ;}
  30. c = c + a[2*i+1] - 1;
  31. ans[i] = (d + c) % 7 ;
  32. }
  33. for(i=0;i<n;i++){
  34. int q;
  35. q = a[2*i];
  36. if (a[2*i] > 12 || a[2*i] < 1) ans[i] =-10;
  37. else if (a[2*i+1]<1 || a[2*i+1]> m[q-1]) ans[i]=-20;
  38. }
  39. for(i=0;i<n;i++)
  40. { if(ans[i]>=0)printf("%d ",ans[i]);
  41. else if(ans[i] == -10) printf("-1 ");
  42. else if(ans[i] == -20) printf("-2 ");
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0s 9424KB
stdin
2000 6
10
2 29
1300 1
11 19
6 1272
8 31
4 9
9 23
2 28
1 1
10 1
stdout
2 -1 0 -2 4 0 6 1 6 0