Заздалегідь з Новим роком, 2016!


40

Ваш внесок буде цілим числом між 1970 та 2090 роком (включно), що становить рік. Ваша програма повинна виводити наступний рік, коли день Нового року припадає на той самий день тижня, що і рік введення.

Випробування:

Нижче наведені зразкові входи та виходи

2001 => 2007
2047 => 2058
2014 => 2020
1970 => 1976
1971 => 1982
1977 => 1983
2006 => 2012

20% бонус: Виведіть день тижня на день Нового року

2001 => 2007 (Mon)
2047 => 2058 (Tue)
2014 => 2020 (Wed)
1970 => 1976 (Thu)
1971 => 1982 (Fri)
1977 => 1983 (Sat)
2006 => 2012 (Sun)

30% бонус: вихідAdvance Happy New Year, <year>

2010 => Advance Happy New Year, 2016

50% бонус: зробіть обидва вище бонуси

2010 => Advance Happy New Year, 2016 (Fri)

Напишіть програму, яка зчитує вхід з STDIN або приймає аргументи командного рядка, або функцію, яка бере аргумент.

Примітка. Будь ласка, додайте посилання для тестування свого коду, якщо можливо.

Табло:


6
Я відчуваю, що кожен виклик дат вимагає робити розрахунок високосних років як підпроблеми, і воно стає несвіжим.
xnor


@xnor Якби це не так, це було б лише +7. Тобто "занадто широкий"
Ерік Атголфер

@EriktheGolfer Ні. Коли я написав цей коментар, моя відповідь була прийнятою.
Денніс

Відповіді:


1

Желе, 9 байт

%4*3%7+5+

Це монадичний ланцюг, який приймає як вхід аргумент цілого числа командного рядка. Тут використовується мій (x+5+(x%4)**3%7)алгоритм.

Спробуйте тут . Хоча це поточна версія Jelly, вона також працює в цій версії , що передує виклику. (Дякую @Dennis!)


Це дивно! Я можу підтвердити, що він працює з цією редакцією інтерпретатора Jelly, яка передує виклику.
Денніс

31

Математика, 45 37 27 24 байт

#+5[6,6,11][[#~Mod~4]]&

Покращення завдяки @ MartinBüttner (10 байт) та @ChipHurst (ще 3 байти).


7
Ух ти. Здається, ніхто не помітив цієї картини, але це виходить.
Лінн

4
Ось трохи коротша версія:#+5[6,6,11][[#~Mod~4]]&
Chip Hurst

@ChipHurst дуже розумний з 5[6, 6, 11][[0]]:)
мартін

18

CJam, 21 12 11 байт

{_9587Cb=+}

@martin знайшов дуже простий метод!

Спробуйте тут .

EDIT: Спасибі, Деннісе!


1
@Mauris Чи можете ви додати пояснення?
Васу Адарі

@Vasu: Цей код - це анонімна функція, яка реалізує той самий 5 6 6 11трюк, який використовується в інших відповідях, але список кодується як "цифри 9587 в базі 12" .
Лінн

Зрозумів дякую. Я хотів, щоб ви додали пояснення, щоб люди, які перевіряють вашу відповідь, могли зрозуміти, як це працює мова wrt.
Васу Адарі

10

gs2, 12 байт

V@¶4☻s%☺♀i50

Переклад моєї відповіді CJam. Зашифровано в CP437 як завжди. Спробуйте в Інтернеті !


Посилання переходить до коду, який створює 2spooky4me, і якщо я вирізаю і вставляю код вище, я отримую неправильний рік: imgur.com/VAkXT0k (під "неправильним роком", я маю на увазі я отримую на рік раніше, ніж призначений рік)
question_asker

Я забув байт. Спробуємо зараз.
Лінн

Я також відредагував посилання.
Лінн

Класно, працює зараз
запитання_asker

8

JavaScript (ES6), 50 49 20 байт (без бонусів)

a=>a+[5,6,6,11][a%4]

Алгоритм від @martin виявляється набагато меншим, тому я пішов з ним.

Я вибрав математичний підхід, оскільки JavaScript, як правило, багатослівний. Код досить короткий, що бонуси лише збільшують його.

Ось моя попередня відповідь (49 байт) та моя оригінальна відповідь (50 байт):

F=(a,b=a)=>((a+--a/4|0)-(b++/4+b|0))%7?F(++a,b):b

F=(a,b=a)=>(f=c=>(c--+c/4|0)%7)(a)-f(++b)?F(a,b):b

Вони працюють, беручи рік і обчислюючи число (0-6), щоб представити "початковий день року". Оскільки діапазон дат для цього виклику знаходиться в діапазоні років, які слідують простим правилам високосного року (не пропускаючи 2000), обчислити досить просто. Тоді лише питання порівняння вперед, щоб знайти роки, які починаються з однаковою цінністю. Рекурсія виявилася найбільш стислим способом цього.


7

Pyth, 14 12 11 байт

+QC@"♣♠♠♂"Q

Чотири байти в рядку повинні бути 05 06 06 0B.

EDIT: Спасибі, FryAmTheEggman!

EDIT: Спасибі, Деннісе!


6

JavaScript (ES6), 104 байти - 50% бонус = 52

y=>eval('for(a=0;a!=(b=(new Date(""+y++)+"").slice(0,3));a=a||b)`Advance Happy New Year, ${y} (`')+b+")"

Пояснення

y=>
  eval(`                  // eval enables for loop without {} or return
    for(
      a=0;                // a = first day of input year
      a!=                 // check if the day of the current year is equal to the first
        (b=(new Date(     // b = day of current year
          ""+y++)+"")     // cast everything as strings!
            .slice(0,3)); // the first 3 letters of the date string are the day name
      a=a||b              // set a to the day on the first iteration
    )

      // return the string
      \`Advance Happy New Year, \${y} (\`
  `)+b+")"

Тест


6

Машинний код Z80, 12 байт

Процедура Z80, яку потрібно зберігати 0000h, викликається входом в HL, і всі інші регістри чіткі:

.org 0000h
              ; Bytes   ; Explanation
  ;---------------------------------------------------------------
  DEC B       ; 05      ; 
  LD B, 6     ; 06 06   ;   
  DEC BC      ; 0B      ;
  LD A, 3     ; 3E 03   ;   A = 3
  AND L       ; A5      ;   A = input & 3
  LD E, A     ; 5F      ;   A = input & 3     DE = input & 3
  LD A, (DE)  ; 1A      ;   A = [input & 3]   DE = input & 3
  LD E, A     ; 5F      ;   A = [input & 3]   DE = [input & 3]
  ADD HL, DE  ; 19      ;   HL = input + offset
  RET         ; C9      ;

Перші три інструкції - це "NOPs", але індексуються як дані пізніше в коді. Після повернення вихідний сигнал знаходиться в HL.


Так, я додав це до посади.
Лінн

Не виглядає правильним для 2097 та 2098 років, які потребують доповнення 7 та 12 відповідно.
Toby Speight

1
ОП каже, що рік введення гарантовано буде в межах 1970-2090.
Лінн

6
Мені дуже не подобаються питання, які змінюються після того, як я відповів!
Toby Speight

2
Чи дозволено вам вказати, що вхід є, DEі тому ви можете використовувати LD A, 3; AND E; LD L, A; LD L, (HL);?
Ніл

5

Python 3, 140 100 102 84,5 154 * 0,5 = 77 байт

Можливо, я міг би написати краще рішення за алгоритмом Сакамото, але це буде робити зараз

Я був правий. Ось реалізація з використанням алгоритму Сакамото.

def s(y):
 d=lambda j:(j+j//4)%7
 for i in range(y,y+15):
  if d(i)==d(y-1):return"Advance Happy New Year, %d (%s)"%(-~i,"SMTWTFSuouehranneduit"[d(i)::7])

Пояснення:

def day_of_the_week(year):
    return (year + year//4 - 1 + 0 + 1) % 7
    # The month code for January is 0, and you add 1 from January *1*.
    # The -1 is to correct for starting on Saturday 
    # and so that it cancels out the 1 from January 1.

def new_years(this_year):
# But in Sakamoto's algorithm, if the month is January or February, we must subtract 1.
    weekdays = "SunMonTueWedThuFriSat"
    for item in range(this_year, this_year + 15):
        if day_of_the_week(this_year - 1) == day_of_the_week(item):
            day = weekdays[day_of_the_week(item)*3 : day_of_the_week(item)*3+3]
            return "Advance Happy New Year, %d (%s)"%(item + 1, day)
        # So we subtract from every year we check, including this_year
        # And add 1 back in at the end
        # And print the greeting, the year, and the corresponding day of the week

Я оновив питання. Вам не потрібно перевіряти століття.
Васу Адарі

1
Як щодо w="SMTWTFSuouehranneduit"друку w[d(i)::7]?
Лінн

4

Серйозно, 35 17 байт

[5,6,6,11] хитрість економить день.

4,;)%[5,6,6,11]E+

Спробуйте в Інтернеті

Пояснення:

4,;)%[5,6,6,11]E+
4,;)%              push input, input % 4
     [5,6,6,11]E   push (input % 4)th element of [5,6,6,11]
                +  add to the input

Стара версія:

,;;D`45/*≈7@%`;╝ƒ╗35*r+`╛ƒ╜=`M1@íu+

Спробуйте в Інтернеті

Пояснення:

,;;D`45/*≈7@%`;╝ƒ╗35*r+`╛ƒ╜=`M1@íu+
,;;                                  push 3 copies of the input (n)
   D                                 decrement the top copy of n
    `45/*≈7@%`;╝                     push Sakamoto's algorithm as a function and save a copy in register 1
                ƒ╗                   call Sakamoto's algorithm function and save result in register 0
                  35*r+              push [n, n+1, ..., n+14]
                       `    `M       map the function:
                        ╛ƒ╜=           push Sakamoto's algorithm, call, push 1 if equal to value in register 0 else 0
                              1@í    get the index of the first 1
                                 u+  increment and add n

Алгоритм Сакамото:

45/*≈7@%
45/*      multiply by 5/4
    ≈     floor
     7@%  mod 7

4

C, 31 байт

Після редагування питання, що обмежує діапазон введення до 1970-2090, це стає досить тривіальним:

f(x){return"\5\6\6\13"[x%4]+x;}

Без періоду, що не переходить у століття, просте 5,6,6,11 послідовність інтервалів для першого повторення того ж дня.

Повне рішення оригінальної проблеми (не обмежена до 2090 р.), 90 байт:

f(x){return(x-1)%100>89&&(x+9)/100%4?"\6\14\5\6\6\6\6\7\14\6"[x%10]+x:"\5\6\6\13"[x%4]+x;}

Тестова програма:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    while (*++argv)
        printf("Advance Happy New Year, %d\n", f(atoi(*argv)));
    return !argc;
}

Пробіг:

$ ./66656 2001 2047 2014 1970 1971 1977 2006
Advance Happy New Year, 2007
Advance Happy New Year, 2058
Advance Happy New Year, 2020
Advance Happy New Year, 1976
Advance Happy New Year, 1982
Advance Happy New Year, 1983
Advance Happy New Year, 2012

4

R, 143 136 * 0,5 = 68 байт

G=function(y)strftime(paste(y,1,1,sep='-'),'%a')
d=seq(y<-scan(),y+14);sprintf("Advance Happy New Year, %i (%s)",d[G(d)==(w=G(y))][2],w)

Використовуйте %Aдля імені повного дня замість `% a, залежно від потрібного стану.

R, 120 * 0,7 = 84 байт

G=function(y)as.POSIXlt(paste(y,1),,"%Y %j")$wday
d=seq(y<-scan(),y+14);cat("Advance Happy New Year,",d[G(d)==G(y)][2])

R, 90 байт

G=function(y)as.POSIXlt(paste(y,1),,"%Y %j")$wday
d=seq(y<-scan(),y+14);d[G(d)==G(y)][2]

Усі відповіді, наведені вище, є похідною роботою на основі @plannapus відповіді. Використовуючи ;роздільник, щоб уникнути необхідності sourceу файлі або запустити його як сценарій у командному рядку.


1
+1 Я зовсім забув weekdays, приємно.
планнапус

@plannapus Спасибі :) (Я порахував нові рядки, насправді запитав файлову систему, оскільки я перебуваю під вікном, це 2 байти, але я не маю нового рядка в кінці, який має мати файл POSIX, тому справедливо тримати його таким власне)
Тенсібай

3

R, 145 байт -50% -> 72,5

y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%a");x=y+1;while(F(x)!=F(y))x=x+1;sprintf("Advance Happy New Year, %i (%s)",x,F(x))

Приклади:

> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%a");x=y+1;while(F(x)!=F(y))x=x+1;sprintf("Advance Happy New Year, %i (%s)",x,F(x))
1: 2006
2: 
Read 1 item
[1] "Advance Happy New Year, 2012 (Sun)"
> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%a");x=y+1;while(F(x)!=F(y))x=x+1;sprintf("Advance Happy New Year, %i (%s)",x,F(x))
1: 1977
2: 
Read 1 item
[1] "Advance Happy New Year, 1983 (Sat)"
> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%a");x=y+1;while(F(x)!=F(y))x=x+1;sprintf("Advance Happy New Year, %i (%s)",x,F(x))
1: 2014
2: 
Read 1 item
[1] "Advance Happy New Year, 2020 (Wed)"

R, 97 байт (без бонусу)

y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%w");x=y+1;while(F(x)!=F(y))x=x+1;x

Відступ, з новими рядками:

y = scan() #Takes input from stdin
F = function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%w") #Year to Weekday
x = y+1
while(F(x) != F(y)) x = x+1
x

Тестові приклади:

> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%w");x=y+1;while(F(x)!=F(y))x=x+1;x
1: 1977
2: 
Read 1 item
[1] 1983
> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%w");x=y+1;while(F(x)!=F(y))x=x+1;x
1: 2006
2: 
Read 1 item
[1] 2012
> y=scan();F=function(y)format(as.POSIXct(paste(y,1),,"%Y %j"),"%w");x=y+1;while(F(x)!=F(y))x=x+1;x
1: 2016
2: 
Read 1 item
[1] 2021

Я не розумію цього бажання потрапити на одну потворну лінію, повернення вагона не найдорожче, ніж ;...
Тенсібай

ви можете зберегти 1 char, видаливши перший y=scan;і скориставшись, x=y<-scan()+1я думаю,
Tensibai

і ви можете зберегти ще сім, використовуючи as.POSIXlt(paste(y,1),,"%Y %j")$wdayв якості функції функції
Тенсібай

@Tensibai, якщо ви не покладете його на один рядок і вставити його безпосередньо на консоль, scanбуде прочитано у другому рядку як вхідне. x=y<-scan()+1з 2014 року в якості стандартного введення дасть вам х = 2015 і у = 2015 (тобто привласнення y <- scan()+1) , і якщо ви спробуєте зробити x=1+y<-scan()це дасть вам помилку ( Error in 1 + y <- scan() : target of assignment expands to non-language object) , тому що він намагається призначити scan()на 1+y.
планнапус

@Tensibai Що стосується вашої останньої поради, результати ...$wday- номер тижня, але мені потрібна назва буднього дня, щоб я могла надрукуватиAdvance Happy New Year, 2012 (Sun)
plannapus

3

VBA, 130 * 0,50 = 65 байт

Sub k(y)
i=1
Do While Weekday(y+i)<>Weekday(y)
i=i+1
Loop
MsgBox "Advance Happy New Year," &y+i &WeekdayName(Weekday(y+i))
End Sub

VBA робить пошук тижневих днів таким простим .... Якби це не було так багатослівно.


3

PHP, 120 139 байт - 50% = 60 байт

Функціональний підхід:

$s=strtotime;for($d=date(D,$s(($y=$argv[1]).$_="-1-1"));$d!=date(D,$s(++$y.$_)););echo"Advance Happy New Year, $y ($d)";

Бере один вхід з командного рядка, наприклад:

$ php ahny.php 2001

Шлях OOP, здається, довший, як завжди (143 байти):

$s=strtotime;for($d=date(D,$s($x=($y=$argv[1])."-1-1"));$d!=date(D,$s(++$y."-1-1")););echo"Advance Happy New Year, $y ($d)";

Правки

  • Збережено 18 байт . Замість того, щоб додавати один рік, використовуючи модифікатор PHP+1year , я тепер просто збільшив даний рік.
  • Збережено 1 байт , зберігаючи -1-1в змінній.

3

C, оцінка 53 52 (104 байти)

f(x){x+="0116"[x%4];printf("Advance Happy New Year, %d (%.3s)",x-43,"MonTueWedThuFriSatSun"+x*5/4%7*3);}

Ідея, запозичена у Toby Speight ; додано відображення бонусів буднього дня.

Скоротіть рядок, перемістивши коди символів на більш комфортний діапазон. Довелося вибрати правильну зміщувальну суму (наприклад, 43), щоб зробити код розрахунку короткого будня x*5/4%7.


Я вважаю, що ваш код символьного коду обмежує це кодуванням, сумісним з ASCII?
Toby Speight

Так. Коди повинні бути більше 31, тому мінімальне число, яке потрібно додати до кодів, було б 27, даючи рядок " !!&".
anatolyg

2

Математика, 145 * 50% = 74 73,5 72,5 байт

d=DateValue;StringForm["Advance Happy New Year, `` (``)",NestWhile[#+1&,(a=#)+1,#!=#2&@@DateObject@{{a},{#}}~d~"DayName"&],{a}~d~"DayNameShort"]&

Використовує стандартні функції дати.


2

Pyth, 23 байти

L%+/b4b7.VQIqyby-Q1+1bB

Не відповідає жодному з бонусів.

Спробуйте тут .

Схожий на чисту відповідь пітона.

                        - Q = eval(input()) (autoassigned)
L                       - y = lambda b:
   /b4                  - b floordiv 4
  +   b                 - + b
 %     7                - mod 7


        .VQ             - for b in range(Q, infinate):
           Iqyby-Q1     - if y(b) == y(Q-1):
                   +1b  - print b+1
                      B - break

2

Java, (1-.2) * 323 (1-.5) * 350 348 339 = 258.4 175 174 169.5 байт

import java.text.*;class D{public static void main(String[]a){long y=new Long(a[0]);int i=0;for(;!s(y).equals(s(y+(++i))););System.out.printf("Advance Happy New Year, %d (%s)",y+i,s(y+i));}static String s(long y){try{return new SimpleDateFormat("E").format(new SimpleDateFormat("d/M/yyyy").parse("1/1/"+y));}catch(Exception e){}return"";}}

Тьфу.

Безголовки:

import java.text.*;
class D{
    public static void main(String[]a){
        long y=new Long(a[0]);
        int i=0;
        for(;!s(y).equals(s(y+(++i))););
        System.out.printf("Advance Happy New Year, %i (%s)",y+i,s(y+i));
    }
    static String s(long y){
        try{
            return new SimpleDateFormat("E").format(new SimpleDateFormat("d/M/yyyy").parse("1/1/"+y));
        }catch(Exception e){}
        return"";
    }
}

Спробуйте в Інтернеті!

Дякую @Kenney за те, що вказав, що я можу скоротити new Longі printf! : D


long y=new Long(a[0])зберігає 6 (12) байт, а за допомогою printfзбереження ще 3 (6).
Кенні

2

GNU coreutils, 52 51 49 байт

(98 байт програма - 50% бонус)

seq -f$1-1-1\ %gyear 28|date -f- +'Advance Happy New Year, %Y (%a)'|sed /`date -d$1-1-1 +%a`/!d\;q

Введення відбувається з аргументу командного рядка, а вихід - з stdout.

Пояснення

# generate 28 input years from $1 + 1 onwards (28 is always enough)
seq -f '$1-1-1 %g year' 28
|
# convert all of these as potential outputs
date -f- +'Advance Happy New Year, %Y (%a)'
|
 # Select the first one where the dayname matches that of input year
sed "/`date -d$1-1-1 +%a`/!d;q"

Пробіг:

Усі параметри локалі можуть бути Cабо POSIX.

$ for i in 2001 2047 2014 1970 1971 1977 2006; do ./66656.sh $i; done
Advance Happy New Year, 2007 (Mon)
Advance Happy New Year, 2058 (Tue)
Advance Happy New Year, 2020 (Wed)
Advance Happy New Year, 1976 (Thu)
Advance Happy New Year, 1982 (Fri)
Advance Happy New Year, 1983 (Sat)
Advance Happy New Year, 2012 (Sun)

Обмеження: це працює лише до 2147485519 року (хоча питання тепер змінено, щоб допустити нижню межу).


2

MATL , 28 байт

i0:14+t1tI$YO8H$XO!st1)=f2))

Приклад

>> matl i0:14+t1tI$YO8H$XO!st1)=f2))
> 1970
1976

Код пояснено

i           % input year
0:14+       % vector with that year and the next 14
t1tI$YO     % first day of each year
8H$XO       % transform into three letters specifying weekday
!s          % sum those three letters to reduce to unique numbers
t1)         % get first of those numbers (corresponding to input year)
=f2)        % find index of second matching
)           % index with that to obtain output year

2

Perl 6 ,  70   23 байти

{($^a+1...{[==] ($a,$_).map: {Date.new(:year($_)).day-of-week}})[*-1]} # 70 bytes

{($_ X+5,6,6,11)[$_%4]} # 23 bytes

використання:

for «2001 2047 2014 1970 1971 1977 2006 2010» {
  printf "%d => %d\n", $_, {($_ X+5,6,6,11)[$_%4]}( $_ )
}
2001 => 2007
2047 => 2058
2014 => 2020
1970 => 1976
1971 => 1982
1977 => 1983
2006 => 2012
2010 => 2016


2

Japt, 12 байт

U+"♣♠♠♂"cU%4

Як і у відповіді Pyth, чотири байти в рядку повинні бути 05 06 06 0B. Спробуйте в Інтернеті!

U+"♣♠♠♂"cU%4  // Implicit: U = input integer
  "♣♠♠♂"      // Take this string.
        cU%4  // Take the char code at U%4.
U+            // Add U.
              // Implicit: output last expression

2
Дякую за цей різдвяний подарунок щедрості! Але чи може хтось сказати мені, як я це заробив?
ETHproductions

Я переглянув історію. Мабуть, ОП намагалася отримати відповідь, але забула присвоїти нагороду, тому Спільнота вирішила передати половину репутації на цю відповідь (я думаю, що її вибір ґрунтується на останніх результатах).

2

Желе , 14 байт

%4=0,3×-,5S++6

Спробуйте в Інтернеті!

До сьогодні у Jelly не було індексації масивів, тому вищезазначене доведеться робити. З часу останнього фіксації індексація масиву реалізована як , даючи наступне рішення ( 10 байт ).

ị6,6,11,5+

Спробуйте в Інтернеті!


1
Я думаю, що Джеллі може запасти 7 символів для 10 ~ 16 констант.
lirtosiast


1

C # (6.0) .Net Framework 4.6 173 байт - 30% = 121.1 байт

void n(int y)=>Console.Write($"Advance Happy New Year, {Enumerable.Range(1,15).Select(i=>new DateTime(y+i,1,1)).First(x=>x.DayOfWeek==new DateTime(y,1,1).DayOfWeek).Year}");

1

Javascript ES7, 17 байт

a=>a+5+(a%4)**3%7

Вперше я використовую JS. Я знайшов це за допомогою сценарію Python, і вважаю, що це оптимально. Він працює, тому що 0**3це 0 мод 7, 1**3і 2**3обидва є 1, і 3**3це 6.


1
Чи не є оператором експоненції** функцію ES7 ? Або ви використовуєте Babel ?
вставитикористувач туди

@insertusernameту виправлено.
lirtosiast


1

Pyth , 12 байт

++5%^%Q4 3 7

Спробуйте в Інтернеті! або Перевірте тестовий набір.

Піт , 18 байт

Цей другий підхід - це гольф відповіді Pyth @ wizzwizz4 .

J%Q4+?q3J11?qJZ5 6

Спробуйте в Інтернеті! або Перевірте тестовий набір.


Пояснення

++ 5% ^% Q4 3 7Q - Q означає оцінений вхід і неявно в кінці.

     % Q4 - вхідний модуль 4.
    ^ 3 - Кубик.
   % 7 - Мод 7.
 +5 - Плюс 5
+ Q - плюс вхід.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.