fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int year, jan1, n;
  5. scanf ("%d%d%d", &year, &jan1, &n);
  6. int leap = 0;
  7. if ( year % 400 == 0 || ( year % 4 == 0 && year % 100 != 0 ) )
  8. leap = 1;
  9. for (int i=0; i<n; i++) {
  10. int month, date;
  11. scanf ("%d%d", &month, &date);
  12. int days = 0;
  13. switch (month) {
  14. case 1: case 3: case 5: case 7: case 8: case 10:
  15. if ( date <= 0 || date > 31 )
  16. days = -2;
  17. break;
  18. case 4: case 6: case 9: case 11:
  19. if ( date <= 0 || date > 30 )
  20. days = -2;
  21. break;
  22. case 2:
  23. if ( date <= 0 || date > (28+leap) )
  24. days = -2;
  25. break;
  26. default:
  27. days = -1;
  28. break;
  29. }
  30. if ( days == 0 ) {
  31. days = days + date -1;
  32. for (int j=1; j<month; j++) {
  33. switch (j) {
  34. case 1: case 3: case 5: case 7: case 8: case 10:
  35. days += 31;
  36. break;
  37. case 4: case 6: case 9: case 11:
  38. days += 30;
  39. break;
  40. case 2:
  41. (leap)? ( days += 29 ) : ( days += 28 );
  42. break;
  43. default:
  44. break;
  45. }
  46. }
  47. printf ("%d ", (jan1+(days%7))%7);
  48. } else {
  49. printf("%d ", days);
  50. }
  51. }
  52. return 0;
  53. }
Success #stdin #stdout 0s 5284KB
stdin
2012 0
5
11 13
11 14
11 15
13 1
1 200
stdout
2 3 4 -1 -2