eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Теорія графів

Теорія графів

\includegraphics{https://static.e-olymp.com/content/fc/fca8e2227f63527071e0abc69e988bdb468d454c.jpg} \includegraphics{https://static.e-olymp.com/content/ec/ec680bd46355e4af82a251fef70d4b6432fd4623.jpg} Сергійко вивчає теорію графів. Нещодавно він дізнався про радіус та діаметр графу. Розглянемо неорієнтований незважений зв'язний граф \textbf{G}, позначимо довжину найкоротшого шляху між вершинами \textbf{s} та \textbf{t} через \textbf{ρ(s, t)}. Радіус \textbf{r(G)} графу визначається як . Діаметр \textbf{d(G)} графу визначається як . Інтуїтивно діаметр графа визначається як найбільша відстань між двома вершинами, а радіус як найбільша відстань, яку Ви змушені будете пройти із обраної Вами центральної вершини. Професор довів на лекції, що \textbf{d(G)/2} ≤ \textbf{r(G)} ≤ \textbf{d(G)} для довільного графу \textbf{G}. Тепер Сергійко бажає встановити, чи дійсно для довільних значень \textbf{d} та \textbf{r} таких, що \textbf{d/2} ≤ \textbf{r} ≤ \textbf{d}, існує граф \textbf{G} такий що \textbf{d(G) = d} та \textbf{r(G) = r}. Допоможіть йому в цьому розібратися. \InputFile Два цілих числа \textbf{d} та \textbf{r} (\textbf{d/2} ≤ \textbf{r} ≤ \textbf{d} ≤ \textbf{50}, \textbf{1} ≤ \textbf{r}). \OutputFile Якщо існує граф із заданими радіусом та діаметром, то у першому рядку слід вивести "\textbf{YES}". Другий рядок повинен містити два цілі числа: \textbf{n} (\textbf{2} ≤ \textbf{n} ≤ \textbf{400}) та \textbf{m} - кількість вершин та кількість ребер. Кожний із наступних \textbf{m} рядків містить два цілі числа - номера вершин, сполучені ребром. Граф не повинен містити петель та кратних ребер. Якщо шуканого графу не існує, то вивести "\textbf{NO}".
Ліміт часу 1 секунда
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
1 1
Вихідні дані #1
YES
2 1
1 2
Автор Andrew Stankevich
Джерело Andrew Stankevich Contest 32, Petrozavodsk Summer Training Camp, Wednesday, September 3, 2008