---
# System prepended metadata

title: Jajca

---

<table border=0>
<tr>
<td width="80%">
EJOI 2020 Practice </br>
<b>eggs</b> (Slovene)
</td>
<td width="20%">
<img align="right" width="100"  src="https://i.imgur.com/KUVHoM0.png">
</td>
</tr>
</table>




# Jajca

## Naloga

Na voljo imaš $n$ jajc in zgradbo s $h$ nadstropji. Veš, da obstaja naravno število $k$ $(k \leq h)$, da če vržeš jajce iz nadstropja $k-1$, se jajce ne razbije (in ga lahko uporabiš ponovno). Če ga vržeš iz $k$-tega nadstropja ali višje, se jajce razbije in ga ne moreš več uporabiti. Poizkus z metanjem jajc lahko ponavljaš dokler ti ne zmanjka jajc. 

Tvoja naloga je, da natančno ugotoviš število $k$. Ob tem pa si želiš napraviti nadvse malo poizkusov.

## Interakcija

Podan je program **DropEggs** skupaj z vzorčnim ocenjevalnikom.

Implementirati moraš funkcijo:
```c
int solve(int n, int h)
```

* Ocenjevalnik funkcijo pokliče le enkrat
* $n$: število jajc
* $h$: število nadstropij
* Funkcija naj vrne število $k$.

Zgoraj omenjena funkcija lahko kliče funkcijo:
```c
int drop(int x)
```
* $x$: nadstropje
* Funkcija vrže jajce iz $x$-tega nadstropja
* Funkcija vrne $1$, če se jajce razbije, drugače vrne $0$.

## Omejitve

* $1 \leq n \leq 100$
* $1 \leq h \leq 100$

## Primer interakcije

<table>
<tr>
<td rowspan=2 width="15%">
Primer vhoda ocenjevalniku     
</td>
<td colspan=4>
Primeri klicev
</td>
</tr>
<tr>
<td>Klic</td>
<td>Vračilo</td>
<td>Klic</td>
<td>Vračilo</td>
</tr>
<tr>
<td rowspan=9 width="15%">2 5 2</td>
<td>solve(2, 5)</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td>drop(3)</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>drop vrne 1</td>
</tr>
<tr>
<td></td>
<td></td>
<td>drop(1)</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>drop vrne 0</td>
</tr>
<tr>
<td></td>
<td></td>
<td>drop(2)</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>drop vrne 1</td>
</tr>
<tr>
<td></td>
<td>solve vrne 2</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Pravilno!</td>
<td></td>
<td></td>
</tr>
</table>

## Podnaloge

Pri tej nalogi je zgolj ena podnaloga in tvoja ocena je vsota ocen testnih primerov. **Le zadnja oddaja naloge bo prispevala h končni oceni.**

## Ocenjevanje

Naj bo $o$ najmanjše število potrebnih eksperimentov, s katerimi lahko natančno določimo $k$,$w = \min(2 \cdot o, h)$ in $c$ število eksperimentov, ki jih je napravil tvoj program.

* Če program izvede neveljavno operacijo ali napačno ugiba odgovor, prejmeš $0 \%$ za testni primer.
* Če $w < c$, prejmeš $0 \%$ za testni primer.
* Če $o < c \leq w$, prejmeš $(10 + 80 \cdot \frac{w -c}{w -o}) \%$ za testni primer.
* Če $c \leq o$, prejmeš $100 \%$ za testni primer.