COCI '09 Contest 4 #2 Planina

View as PDF

Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 32M

Problem type
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

Mirko and Slavko are filming a movie adaptation of the popular SF novel "Chicks in space 13". The script requires them to present a lot of different worlds so they decided to film the entire movie in front of a green screen and add CGI backgrounds later. Mirko heard that the best way to generate artificial terrain is to use midpoint displacement algorithm.

To start the algorithm, Mirko selects 4 points forming a perfect square. He then performs the following steps:

  1. On each side of the square, he adds a new point in the exact middle of the side. The height of this new point is the average height of the two points on that side.

  2. In the exact center of the square he adds a new point whose height is the average height of all 4 square vertices, plus a small random value.

After those two steps are performed, he now has 4 new squares. He performs the same steps on the newly created squares again and again until he is pleased with the results. The following diagram illustrates 2 iterations of the algorithm.

Mirko noticed that some of the points belong to more than one square. In order to decrease memory consumption, he stores calculates and stores such points only once. He now wonders how many points in total will he need to store in memory after N iterations.

Input Specification

The first and only line of input contains one integer N (1 \le N \le 15), number of iterations.

Output Specification

The first and only line of output should contain one number, the number of points stored after N iterations.

Sample Input 1

1

Sample Output 1

9

Sample Input 2

2

Sample Output 2

25

Sample Input 3

5

Sample Output 3

1089

Comments


  • 6
    Narcariel  commented on Jan. 12, 2021, 12:34 p.m.

    To stop c++ from outputting scientific notation you may want to check out, #include <iomanip>, specifically the function fixed & setprecision.