problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3573 命名空间参考

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3573, case1)
 
 TEST (acwing3573, case2)
 

函数说明

◆ main()

int acwing::acwing3573::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp196 行定义.

196 {
197 int t, year, month, day, a;
198 int day_of_month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
199 int day_of_month_leap[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
200 int(*day_of_month_p)[13] = nullptr;
201
202 cin >> t;
203 while(t--) {
204 cin >> year >> month >> day >> a;
205 day_of_month_p = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? &day_of_month_leap : &day_of_month;
206 day += a;
207 while(day > (*day_of_month_p)[month]) {
208 day -= (*day_of_month_p)[month];
209 month++;
210 if(month > 12) {
211 month = 1;
212 year++;
213 day_of_month_p = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? &day_of_month_leap : &day_of_month;
214 }
215 }
216 cout << setw(4) << setfill('0') << year << '-' << setw(2) << setfill('0') << month << '-' << setw(2) << setfill('0') << day << endl;
217 }
218 return 0;
219 }

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing3573::TEST ( acwing3573  ,
case1   
)

在文件 acwing408_test.cpp582 行定义.

582 {
583 istringstream in("1\n"
584 "2008 2 3 100");
585 auto out = ostringstream();
586 main(in, out);
587 const auto ans = out.str();
588 ASSERT_EQ("2008-05-13\n",
589 ans);
590 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing3573::TEST ( acwing3573  ,
case2   
)

在文件 acwing408_test.cpp592 行定义.

592 {
593 istringstream in("154\n"
594 "1940 8 14 88\n"
595 "2261 4 14 67\n"
596 "2181 5 20 55\n"
597 "1321 1 11 65\n"
598 "1817 9 20 16\n"
599 "2027 4 28 46\n"
600 "1890 10 16 92\n"
601 "2913 2 21 22\n"
602 "1784 9 1 67\n"
603 "2921 11 29 19\n"
604 "2846 7 28 87\n"
605 "2906 12 20 81\n"
606 "1761 11 20 53\n"
607 "1537 12 10 83\n"
608 "2645 5 14 63\n"
609 "1973 12 30 36\n"
610 "2604 2 23 19\n"
611 "2925 10 26 16\n"
612 "2188 8 14 95\n"
613 "1722 12 21 44\n"
614 "2124 9 2 81\n"
615 "2950 9 16 1\n"
616 "2742 9 20 5\n"
617 "2144 1 6 22\n"
618 "2666 5 12 83\n"
619 "1051 1 17 5\n"
620 "2327 4 5 23\n"
621 "1846 9 18 54\n"
622 "2615 4 18 7\n"
623 "1024 4 9 74\n"
624 "1048 3 9 58\n"
625 "1977 7 25 79\n"
626 "1339 9 26 65\n"
627 "1315 6 19 62\n"
628 "1403 7 27 19\n"
629 "1986 11 1 97\n"
630 "1225 1 17 42\n"
631 "2419 5 25 79\n"
632 "1317 12 9 49\n"
633 "1131 3 16 71\n"
634 "2045 2 14 99\n"
635 "1581 12 24 33\n"
636 "2403 1 6 51\n"
637 "1853 10 17 16\n"
638 "2653 7 28 2\n"
639 "1813 10 23 4\n"
640 "1137 7 14 89\n"
641 "2279 7 14 99\n"
642 "2911 7 15 26\n"
643 "1895 3 23 95\n"
644 "1651 12 2 44\n"
645 "2321 4 7 67\n"
646 "1796 10 9 65\n"
647 "1287 5 22 90\n"
648 "2579 12 3 48\n"
649 "1883 8 22 87\n"
650 "2701 1 11 99\n"
651 "1227 2 9 63\n"
652 "1476 4 25 57\n"
653 "2682 5 7 83\n"
654 "2192 11 17 98\n"
655 "2337 12 13 76\n"
656 "2594 5 23 45\n"
657 "2473 2 2 77\n"
658 "2779 2 22 22\n"
659 "1576 4 15 62\n"
660 "2514 7 31 26\n"
661 "2086 5 5 6\n"
662 "1497 10 16 39\n"
663 "2081 11 10 61\n"
664 "1413 4 29 49\n"
665 "2602 2 4 49\n"
666 "2467 5 29 15\n"
667 "1639 8 9 42\n"
668 "1370 10 20 12\n"
669 "1006 5 22 31\n"
670 "1984 2 17 15\n"
671 "1365 2 22 79\n"
672 "1120 12 9 27\n"
673 "2641 4 26 25\n"
674 "1868 10 1 36\n"
675 "2542 11 28 89\n"
676 "2038 1 11 87\n"
677 "1976 2 25 72\n"
678 "1757 6 11 55\n"
679 "2754 9 21 49\n"
680 "2500 9 23 34\n"
681 "1218 5 5 83\n"
682 "2909 9 24 66\n"
683 "1570 11 3 61\n"
684 "1652 1 8 88\n"
685 "1837 12 10 98\n"
686 "2999 11 30 4\n"
687 "2941 8 18 56\n"
688 "1109 12 6 94\n"
689 "1249 5 31 72\n"
690 "1125 3 13 72\n"
691 "2936 11 3 24\n"
692 "2240 6 30 97\n"
693 "2134 4 24 72\n"
694 "1979 1 23 50\n"
695 "2638 2 9 67\n"
696 "2695 2 27 20\n"
697 "1738 10 10 92\n"
698 "2749 5 3 70\n"
699 "1794 9 13 19\n"
700 "1607 7 2 74\n"
701 "1118 4 23 99\n"
702 "2516 8 14 48\n"
703 "1680 7 19 79\n"
704 "2351 4 27 77\n"
705 "1644 6 24 23\n"
706 "1508 3 3 45\n"
707 "1361 4 1 78\n"
708 "2961 8 8 90\n"
709 "2316 1 7 29\n"
710 "1193 2 24 62\n"
711 "1132 3 17 12\n"
712 "2232 12 13 37\n"
713 "1911 9 20 40\n"
714 "1785 3 27 56\n"
715 "1038 7 22 67\n"
716 "1361 4 7 52\n"
717 "1410 12 19 89\n"
718 "1092 8 25 84\n"
719 "1852 4 27 20\n"
720 "1768 8 31 31\n"
721 "2451 7 7 48\n"
722 "1090 9 27 1\n"
723 "1349 3 14 98\n"
724 "2694 5 1 97\n"
725 "1242 10 25 66\n"
726 "2826 5 1 83\n"
727 "1172 9 9 71\n"
728 "1079 12 31 62\n"
729 "1731 10 20 20\n"
730 "1548 1 11 42\n"
731 "1180 8 22 43\n"
732 "1162 1 4 85\n"
733 "1037 8 14 28\n"
734 "1610 4 18 59\n"
735 "2001 8 28 35\n"
736 "1898 1 11 46\n"
737 "1085 2 11 90\n"
738 "1409 10 11 65\n"
739 "1920 3 31 58\n"
740 "2341 10 23 28\n"
741 "1180 12 23 33\n"
742 "1701 10 1 16\n"
743 "2621 2 4 33\n"
744 "2141 10 7 6\n"
745 "1057 8 27 55\n"
746 "2489 2 2 93\n"
747 "1993 7 3 55");
748 auto out = ostringstream();
749 main(in, out);
750 const auto ans = out.str();
751 ASSERT_EQ("1940-11-10\n"
752 "2261-06-20\n"
753 "2181-07-14\n"
754 "1321-03-17\n"
755 "1817-10-06\n"
756 "2027-06-13\n"
757 "1891-01-16\n"
758 "2913-03-15\n"
759 "1784-11-07\n"
760 "2921-12-18\n"
761 "2846-10-23\n"
762 "2907-03-11\n"
763 "1762-01-12\n"
764 "1538-03-03\n"
765 "2645-07-16\n"
766 "1974-02-04\n"
767 "2604-03-13\n"
768 "2925-11-11\n"
769 "2188-11-17\n"
770 "1723-02-03\n"
771 "2124-11-22\n"
772 "2950-09-17\n"
773 "2742-09-25\n"
774 "2144-01-28\n"
775 "2666-08-03\n"
776 "1051-01-22\n"
777 "2327-04-28\n"
778 "1846-11-11\n"
779 "2615-04-25\n"
780 "1024-06-22\n"
781 "1048-05-06\n"
782 "1977-10-12\n"
783 "1339-11-30\n"
784 "1315-08-20\n"
785 "1403-08-15\n"
786 "1987-02-06\n"
787 "1225-02-28\n"
788 "2419-08-12\n"
789 "1318-01-27\n"
790 "1131-05-26\n"
791 "2045-05-24\n"
792 "1582-01-26\n"
793 "2403-02-26\n"
794 "1853-11-02\n"
795 "2653-07-30\n"
796 "1813-10-27\n"
797 "1137-10-11\n"
798 "2279-10-21\n"
799 "2911-08-10\n"
800 "1895-06-26\n"
801 "1652-01-15\n"
802 "2321-06-13\n"
803 "1796-12-13\n"
804 "1287-08-20\n"
805 "2580-01-20\n"
806 "1883-11-17\n"
807 "2701-04-20\n"
808 "1227-04-13\n"
809 "1476-06-21\n"
810 "2682-07-29\n"
811 "2193-02-23\n"
812 "2338-02-27\n"
813 "2594-07-07\n"
814 "2473-04-20\n"
815 "2779-03-16\n"
816 "1576-06-16\n"
817 "2514-08-26\n"
818 "2086-05-11\n"
819 "1497-11-24\n"
820 "2082-01-10\n"
821 "1413-06-17\n"
822 "2602-03-25\n"
823 "2467-06-13\n"
824 "1639-09-20\n"
825 "1370-11-01\n"
826 "1006-06-22\n"
827 "1984-03-03\n"
828 "1365-05-12\n"
829 "1121-01-05\n"
830 "2641-05-21\n"
831 "1868-11-06\n"
832 "2543-02-25\n"
833 "2038-04-08\n"
834 "1976-05-07\n"
835 "1757-08-05\n"
836 "2754-11-09\n"
837 "2500-10-27\n"
838 "1218-07-27\n"
839 "2909-11-29\n"
840 "1571-01-03\n"
841 "1652-04-05\n"
842 "1838-03-18\n"
843 "2999-12-04\n"
844 "2941-10-13\n"
845 "1110-03-10\n"
846 "1249-08-11\n"
847 "1125-05-24\n"
848 "2936-11-27\n"
849 "2240-10-05\n"
850 "2134-07-05\n"
851 "1979-03-14\n"
852 "2638-04-17\n"
853 "2695-03-19\n"
854 "1739-01-10\n"
855 "2749-07-12\n"
856 "1794-10-02\n"
857 "1607-09-14\n"
858 "1118-07-31\n"
859 "2516-10-01\n"
860 "1680-10-06\n"
861 "2351-07-13\n"
862 "1644-07-17\n"
863 "1508-04-17\n"
864 "1361-06-18\n"
865 "2961-11-06\n"
866 "2316-02-05\n"
867 "1193-04-27\n"
868 "1132-03-29\n"
869 "2233-01-19\n"
870 "1911-10-30\n"
871 "1785-05-22\n"
872 "1038-09-27\n"
873 "1361-05-29\n"
874 "1411-03-18\n"
875 "1092-11-17\n"
876 "1852-05-17\n"
877 "1768-10-01\n"
878 "2451-08-24\n"
879 "1090-09-28\n"
880 "1349-06-20\n"
881 "2694-08-06\n"
882 "1242-12-30\n"
883 "2826-07-23\n"
884 "1172-11-19\n"
885 "1080-03-02\n"
886 "1731-11-09\n"
887 "1548-02-22\n"
888 "1180-10-04\n"
889 "1162-03-30\n"
890 "1037-09-11\n"
891 "1610-06-16\n"
892 "2001-10-02\n"
893 "1898-02-26\n"
894 "1085-05-12\n"
895 "1409-12-15\n"
896 "1920-05-28\n"
897 "2341-11-20\n"
898 "1181-01-25\n"
899 "1701-10-17\n"
900 "2621-03-09\n"
901 "2141-10-13\n"
902 "1057-10-21\n"
903 "2489-05-06\n"
904 "1993-08-27\n",
905 ans);
906 }

引用了 main().