/*****************************************************************
* Ovo delo zaštićeno je licencom Creative Commons CC BY-NC-ND 4.0
* (Attribution-NonCommercial-NoDerivatives 4.0 International License).
* Za detalje pogledati LICENSE.TXT
* Autori: Milena Vujosevic Janicic, Jovana Kovacevic,  
*         Danijela Simic, Andjelka Zecevic, Aleksandra Kocic
******************************************************************/

#include <stdio.h>

int main() {
  /* Deklaracije potrebnih promenljivih. */
  int n, c1, c2, c3;
  int pozicija, rezultat;

  /* Ucitavanje vrednosti broja n. */
  printf("Unesite broj: ");
  scanf("%d", &n);

  /* Provera ispravnosti ulaza. */
  if (n <= 0) {
    printf("Greska: neispravan unos.\n");
    return 1;
  }

  /* Ako broj nema bar tri cifre, rezultat ima vrednost unetog
     broja. */
  if (n <= 99) {
    printf("Rezultat: %d\n", n);
    return 0;
  }

  /* Izdvajanje poslednje tri cifre polaznog broja. */
  c1 = n % 10;
  c2 = (n / 10) % 10;
  c3 = (n / 100) % 10;

  /* Poslednja cifra se uvek nalazi u rezultatu jer ona nema oba
     suseda. Zato se rezultat inicijalizuje na poslednju cifru, a
     pozicija na 10. */
  rezultat = c1;
  pozicija = 10;

  /* Petlja se izvrsava dok god broj ima bar tri cifre. */
  while (n > 99) {
    /* Provera da li c2 treba da se nadje u rezultatu. Ako
       treba, rezultat se uvecava za vrednost cifre pomnozene
       vrednoscu tezine njene pozicije u rezultatu i tezina
       pozicije se mnozi sa 10. */
    if (c2 != c1 + c3) {
      rezultat += c2 * pozicija;
      pozicija *= 10;
    }

    /* Vrsi se pomeranje na sledece tri cifre polaznog broja. Iz
       polaznog broja se brise poslednja cifra. Prva i druga cifra
       su vec izracunate, samo se vrsi njihovo premestanje iz c2 i
       c3 u c1 i c2. Cifra c3 se racuna. */
    n = n / 10;
    c1 = c2;
    c2 = c3;
    c3 = (n / 100) % 10;
  }

  /* Po zavrsetku petlje, broj n je dvocifren i njegova cifra
     desetica odgovara vodecoj cifri polaznog broja. Vodeca cifra
     polaznog broja uvek treba da se nadje u rezultatu jer nema oba 
     suseda i iz tog razloga se dodaje na tekuci rezultat. */
  rezultat += (n / 10) * pozicija;

  /* Ispis rezultata. */
  printf("Rezultat: %d\n", rezultat);

  return 0;
}