B. Тэмцээн

хугацааны хязгаарлалт 1 секунд

санах ойн хязгаарлалт 256 мегабайт

оролт стандарт оролт

гаралт стандарт гаралт

Даниел хөлбөмбөгийн тэмцээн зохион байгуулж байна. Дараах дүрмээр тэмцээнийг зохион байгуулна:

  1. Багуудын тоо сондгой болох хүртэл багууд хоёр, хоёроороо эсрэг баг болон хоорондоо тоглох бөгөөд хожигдсон баг хасагдах журмаар тэмцээний эхний үе шатууд үргэлжлэнэ. Үүнд хамгийн эхний үед нийт багуудийн тоо сондгой байх боломжтой бөгөөд аль ч тоглолт тэнцээгээр өндөрлөхгүй.
  2. Эцэст нь үлдсэн багуудын тоо сондгой болно. Хэрвээ ганцхан баг үлдсэн бол тэр баг ялагчаар тодорч тэмцээн дуусна. Бусад тохиолдолд баг болгон бусад бүх багтай нэг удаа тоглож тэмцээн дуусна. (Хэрвээ $x$ баг байвал $\frac{x \cdot (x-1)}{2}$ тоглолт болно.)

Жишээ нь анх $20$-н баг байсан бол эхний үед $10$ тоглолт болж $10$ баг үлдэнэ. Дараагийн үед $5$ тоглолт болно. Үлдсэн $5$-н баг хоорондоо $10$ тоглолт хийнэ. Эндээс нийт $10+5+10=25$ тоглолт болох болно.

Даниел цэнгэлдэх хүрээлэнд $n$ тоглолтын хуваарь бүртгүүлсэн бол та түүнд яг $n$ ширхэг тоглолт болохын тулд хэдэн ширхэг баг тэмцээнд орох ёстойг олоход туслах хэрэгтэй. Нөхцлийг хангаж буй бүх хариуг хэвлэнэ. Хэрвээ хариу олдохгүй бол "-1" гэж хэвлэнэ.

Оролт

Эхний мөрөнд тоглолтын тоо болох нэг бүхэл тоо $n$ ($1 ≤ n ≤ 10^{18}$).

C++ дээрх бүхэл тоог унших эсвэл бичихийн тулд $lld$ тодорхойлогч ашиглахыг хориглоно. $cin$, $cout$ урсгал эсвэл $I64d$ тодорхойлогч ашиглах ёстой.

Гаралт

Нөхцөлийг хангаж буй бүх боломжит оролцох багийн тоог нэг мөрөнд хэвлэнэ. Хэрвээ яг $n$ тоглолт болох боломжгүй бол "-1" гэж хэвлэнэ.

Орчуулсан: Энхлут

Жишээ тэстүүд

Оролт
3
Гаралт
3
4
Оролт
25
Гаралт
20
Оролт
2
Гаралт
-1
Сэтгэгдлүүдийг ачааллаж байна...