Ханой


Submit solution

Points: 3
Time limit: 0.1s
Memory limit: 16M

Author:
Problem type
Allowed languages
C++

Tower of Hanoi бодлогын дагуу: n ширхэг, хэмжээгээрээ ялгаатай диск болон 3 гадас өгөгдөнө. Эхэндээ бүх диск нь нэгдүгээр гадас дээр, томоосоо доош дараалсан байршилтай байна.

Дискүүдийг нэгдүгээр гадаснаас гуравдугаар гадас руу зөөх шаардлагатай.

Зөөхдөө дараах дүрмийг баримтална:

  • Нэг үйлдлээр зөвхөн нэг диск зөөж болно.
  • Ямар ч үед жижиг диск дээр том диск тавьж болохгүй.

Бүх дискийг гуравдугаар гадас руу зөөхөд шаардлагатай хамгийн бага үйлдлийн тоо-г \(10^9+7\) тоонд хуваахад гарах үлдэгдлийг олно.

Оролт:

n бүхэл тоо өгөгдөнө.

Гаралт:

Нийт хамгийн бага үйлдлийн тоог \(10^9+7\) тоонд хуваасан үлдэгдлийг хэвлэнэ.

Хязгаарлалтууд:

  • \(1 \leq n \leq 10^{18}\)
Дэд бодлого
Дэд бодлого оноо Хязгарлалт Тайлбар
1 Дэд бодлого -1 1 \(n \leq 20\)
2 Дэд бодлого -2 1 \(n \leq 60\)
3 Дэд бодлого -3 1 \(n \leq 120\)
4 Дэд бодлого -4 1 \(n \leq 10^5\)
5 Дэд бодлого -5 1 Нэмэлт хязгаарлалтгүй

Жишээ:

Оролт-1
3
Гаралт-1
7

Comments

There are no comments at the moment.