72542024-01-05 15:30:31czitaVilágnaptár (45 pont)csharpElfogadva 45/4532ms25804 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace vilagnaptar
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] st = Console.ReadLine().Split().Select(int.Parse).ToArray();

            int ev = st[0];
            int ho = st[1];
            int nap = st[2];
            if (ho == 12 && nap == 31)//ha Világnap van
            {
                Console.WriteLine($"{ev} 12 VN");
            }
            else if (ev % 4 == 0 && ho == 7 && nap == 1)//szökőév szökőnap
            {
                Console.WriteLine($"{ev} 6 SZN");
            }
            else
            if (ev % 4 != 0)//szököév-e
            {
                int[] hoN = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };
                ///az adott hónap előtt hány nap van az évben
                int[] hoVN = { 1, 32, 62, 92, 123, 153, 183, 214, 244, 274, 305, 335, 365 };
                //Az adott hónap Világnaptár szerint hanyadik az év hanyadik napján kezdődik
                int evnapja = hoN[ho - 1] + nap;
                //megkeressük hányadik hónapban van a világnaptár szerint
                int cv = 0;
                while (cv < 12 && evnapja >= hoVN[cv])
                {
                    cv++;
                }

                Console.WriteLine($"{ev} {cv} " +
                    $"{evnapja - hoVN[cv - 1] + 1}");//melyik napra esik a hónapban január 2. évnapja 32, 32-32(hoVN)+1

            }
            else
            {

                int[] hoN = { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 };
                //a szökőnap (február) után 1-el növeltük a napok számát
                int[] hoVN = { 1, 32, 62, 92, 123, 153, 184, 215, 245, 275, 306, 336, 366 };
                //a szökőnap (június) után 1-el növeltük a napok számát
                int evnapja = hoN[ho - 1] + nap;
                int cv = 0;
                while (cv < 12 && evnapja >= hoVN[cv])
                {
                    cv++;
                }

                Console.WriteLine($"{ev} {cv} {evnapja - hoVN[cv - 1] + 1}");

            }
            Console.ReadKey();
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base45/45
1Elfogadva0/030ms22040 KiB
2Elfogadva0/030ms22532 KiB
3Elfogadva0/030ms22640 KiB
4Elfogadva2/230ms23208 KiB
5Elfogadva2/229ms23512 KiB
6Elfogadva3/330ms23452 KiB
7Elfogadva3/332ms23840 KiB
8Elfogadva3/332ms24148 KiB
9Elfogadva3/332ms24500 KiB
10Elfogadva3/332ms25080 KiB
11Elfogadva3/330ms25120 KiB
12Elfogadva3/332ms24676 KiB
13Elfogadva3/332ms25028 KiB
14Elfogadva3/332ms24936 KiB
15Elfogadva3/332ms24920 KiB
16Elfogadva3/332ms25264 KiB
17Elfogadva3/330ms25676 KiB
18Elfogadva2/232ms25632 KiB
19Elfogadva3/330ms25804 KiB