#!/usr/bin/perl 
# your code goes here 
my  $output = 1 ;  #0 - vivodit tolko resultat, 1 - vivodit' podrobnosti i resultat 
my  $count = 10 ;  # skol'ko raz delat' vibor 
my  $answer = 1 ;  # 0 - ne menyaem vibor, 1- menyaem vibor, 2 - menyaem randomom 
 
 
 
#ispolzuem hash dlya naglyadnosti 
my  %init_doors = ( 
          'red'  => 0 , 
          'green'  => 0 , 
          'blue'  => 0 
          ) ; 
 
 
my  @variants = ( 'red' , 'green' , 'blue' ) ; 
 
my  $success = 0 ; 
my  $failed = 0 ; 
 
for  ( my  $i = 0 ; $i < $count ; $i ++ ) 
{ 
 
 my  $target = $variants [ int rand ( 3 ) ] ; #zagadivaem   if  ( $output ) 
 { 
  print "Zagadali: $target\n " ;   } ; 
 
 
 my  $test = $variants [ int rand ( 3 ) ] ; #popitka ugadat   
 if  ( $output ) 
 { 
  print "Popitka: $test\n " ;   } ; 
 
 my  %temp_doors = %init_doors ; 
 
 my  $add_variant = "" ; 
 my  @result_array = ( ) ;  # tut budem hranit spisok posle otbrasivaniya vedushchim lishnego varianta 
 
 if  ( $target  eq  $test )     #esli zagadannoye sovpalo s vibrannim 
  { 
    delete ( $temp_doors { $target } ) ;  #udalyaem zagadannoye      my  $temp = 0 ; 
    my  @temp_array = ( ) ; 
    foreach  my  $key  ( keys %temp_doors )     #pomeshchaem v massiv ostavsheesya                                            #dva znacheniya chto bi po indeksu randomom vibrat' 
    { 
     $temp_array [ $temp ] = $key ; 
     $temp ++; 
    } ; 
 
    $add_variant = $temp_array [ int rand ( 2 ) ] ;  #vibiraem kakoy neverniy variant ostavit'  (verniy to uge uagadan)      $result_array [ 0 ] = $test ; 
    $result_array [ 1 ] = $add_variant ; 
  } 
 else   #esli zagadannoye vedushchim ne sovpalo s vibrannim igrayushchim, togda dobavlyaem zagadannoye k vibrannomu 
  { 
    $result_array [ 0 ] = $test ; 
    $result_array [ 1 ] = $target ; 
  } ; 
 if  ( $output ) 
 { 
  print "Vtoroy shans - vibor iz: " . join ( ',' , @result_array ) . "\n " ;  #vivodim vse chto ostalos' posle otbrasivaniya   } ; 
 
 if  ( $answer  ==  0 )  #esli ne menyaem vibor 
 { 
  if  ( $output ) 
  { 
   print "Ne menyaem vibor\n " ;    } ; 
  if  ( $test  eq  $target ) 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ugadali\n " ;      } ; 
    $success ++; 
   } 
   else 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ne ugadali\n " ;      } ; 
    $failed ++; 
   } ; 
 } 
 elsif  ( $answer  == 1 )  # esli menyaem vibor 
  { 
   if  ( $output ) 
   { 
    print "Menyaem vibor s $test на $result_array[1]\n " ;     } ; 
   $test = $result_array [ 1 ] ;  # v $result_array[0] - vsegda vibraniy varian, poetome dlyz smeni vibore berem $result_array[1] 
 
   if  ( $test  eq  $target ) 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ugadali\n " ;      } ; 
    $success ++; 
   } 
   else 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ne ugadali\n " ;      } ; 
    $failed ++; 
   } ; 
  } 
 elsif  ( $answer == 2 )  #vibiraem randomom vtoroy raz 
 { 
   if  ( $output ) 
   { 
    print "Delaem vibor snova randomom, vibrali $test\n " ;     } ; 
   if  ( $test  eq  $target ) 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ugadali\n " ;      } ; 
    $success ++; 
   } 
   else 
   { 
    if  ( $output ) 
    { 
     print "Resultat: Ne ugadali\n " ;      } ; 
    $failed ++; 
   } ; 
 
 
 } ; 
 if  ( $output ) 
 { 
  print "\n =========================================================\n " ;    } ; 
} ; 
 
print "\n Vsego: $count\n " ; print "Ugadano: $success\n " ; print "Ne ugadano: $failed\n " ;  
IyEvdXNyL2Jpbi9wZXJsCiMgeW91ciBjb2RlIGdvZXMgaGVyZQpteSAkb3V0cHV0PTE7ICMwIC0gdml2b2RpdCB0b2xrbyByZXN1bHRhdCwgMSAtIHZpdm9kaXQnIHBvZHJvYm5vc3RpIGkgcmVzdWx0YXQKbXkgJGNvdW50PTEwOyAjIHNrb2wna28gcmF6IGRlbGF0JyB2aWJvcgpteSAkYW5zd2VyPTE7ICMgMCAtIG5lIG1lbnlhZW0gdmlib3IsIDEtIG1lbnlhZW0gdmlib3IsIDIgLSBtZW55YWVtIHJhbmRvbW9tCgoKc3JhbmQodGltZSgpKTsKCiNpc3BvbHp1ZW0gaGFzaCBkbHlhIG5hZ2x5YWRub3N0aQpteSAlaW5pdF9kb29ycz0oCiAgICAgICAgICAncmVkJyA9PjAsCiAgICAgICAgICAnZ3JlZW4nID0+MCwKICAgICAgICAgICdibHVlJyA9PjAKICAgICAgICAgICk7CgoKbXkgQHZhcmlhbnRzPSgncmVkJywnZ3JlZW4nLCdibHVlJyk7CgpteSAkc3VjY2Vzcz0wOwpteSAkZmFpbGVkPTA7Cgpmb3IgKG15ICRpPTA7JGk8JGNvdW50OyRpKyspCnsKCiBteSAkdGFyZ2V0PSR2YXJpYW50c1tpbnQgcmFuZCgzKV07I3phZ2FkaXZhZW0KIGlmICgkb3V0cHV0KQogewogIHByaW50ICJaYWdhZGFsaTogJHRhcmdldFxuIjsKIH07CgoKIG15ICR0ZXN0PSR2YXJpYW50c1tpbnQgcmFuZCgzKV07I3BvcGl0a2EgdWdhZGF0CgogaWYgKCRvdXRwdXQpCiB7CiAgcHJpbnQgIlBvcGl0a2E6ICR0ZXN0XG4iOwogfTsKCiBteSAldGVtcF9kb29ycz0laW5pdF9kb29yczsKCiBteSAkYWRkX3ZhcmlhbnQ9IiI7CiBteSBAcmVzdWx0X2FycmF5PSgpOyAjIHR1dCBidWRlbSBocmFuaXQgc3Bpc29rIHBvc2xlIG90YnJhc2l2YW5peWEgdmVkdXNoY2hpbSBsaXNobmVnbyB2YXJpYW50YQoKIGlmICgkdGFyZ2V0IGVxICR0ZXN0KSAgICAjZXNsaSB6YWdhZGFubm95ZSBzb3ZwYWxvIHMgdmlicmFubmltCiAgewogICAgZGVsZXRlKCR0ZW1wX2Rvb3JzeyR0YXJnZXR9KTsgI3VkYWx5YWVtIHphZ2FkYW5ub3llCiAgICBteSAkdGVtcD0wOwogICAgbXkgQHRlbXBfYXJyYXk9KCk7CiAgICBmb3JlYWNoIG15ICRrZXkgKGtleXMgJXRlbXBfZG9vcnMpICAgICNwb21lc2hjaGFlbSB2IG1hc3NpdiBvc3RhdnNoZWVzeWEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2R2YSB6bmFjaGVuaXlhIGNodG8gYmkgcG8gaW5kZWtzdSByYW5kb21vbSB2aWJyYXQnCiAgICB7CiAgICAgJHRlbXBfYXJyYXlbJHRlbXBdPSRrZXk7CiAgICAgJHRlbXArKzsKICAgIH07CgogICAgJGFkZF92YXJpYW50PSR0ZW1wX2FycmF5W2ludCByYW5kKDIpXTsgI3ZpYmlyYWVtIGtha295IG5ldmVybml5IHZhcmlhbnQgb3N0YXZpdCcgICh2ZXJuaXkgdG8gdWdlIHVhZ2FkYW4pCiAgICAkcmVzdWx0X2FycmF5WzBdPSR0ZXN0OwogICAgJHJlc3VsdF9hcnJheVsxXT0kYWRkX3ZhcmlhbnQ7CiAgfQogZWxzZSAgI2VzbGkgemFnYWRhbm5veWUgdmVkdXNoY2hpbSBuZSBzb3ZwYWxvIHMgdmlicmFubmltIGlncmF5dXNoY2hpbSwgdG9nZGEgZG9iYXZseWFlbSB6YWdhZGFubm95ZSBrIHZpYnJhbm5vbXUKICB7CiAgICAkcmVzdWx0X2FycmF5WzBdPSR0ZXN0OwogICAgJHJlc3VsdF9hcnJheVsxXT0kdGFyZ2V0OwogIH07CiBpZiAoJG91dHB1dCkKIHsKICBwcmludCAiVnRvcm95IHNoYW5zIC0gdmlib3IgaXo6ICIuam9pbignLCcsQHJlc3VsdF9hcnJheSkuIlxuIjsgI3Zpdm9kaW0gdnNlIGNodG8gb3N0YWxvcycgcG9zbGUgb3RicmFzaXZhbml5YQogfTsKCiBpZiAoJGFuc3dlciA9PSAwKSAjZXNsaSBuZSBtZW55YWVtIHZpYm9yCiB7CiAgaWYgKCRvdXRwdXQpCiAgewogICBwcmludCAiTmUgbWVueWFlbSB2aWJvclxuIjsKICB9OwogIGlmICgkdGVzdCBlcSAkdGFyZ2V0KQogICB7CiAgICBpZiAoJG91dHB1dCkKICAgIHsKICAgICBwcmludCAiUmVzdWx0YXQ6IFVnYWRhbGlcbiI7CiAgICB9OwogICAgJHN1Y2Nlc3MrKzsKICAgfQogICBlbHNlCiAgIHsKICAgIGlmICgkb3V0cHV0KQogICAgewogICAgIHByaW50ICJSZXN1bHRhdDogTmUgdWdhZGFsaVxuIjsKICAgIH07CiAgICAkZmFpbGVkKys7CiAgIH07CiB9CiBlbHNpZiAoJGFuc3dlciA9PTEpICMgZXNsaSBtZW55YWVtIHZpYm9yCiAgewogICBpZiAoJG91dHB1dCkKICAgewogICAgcHJpbnQgIk1lbnlhZW0gdmlib3IgcyAkdGVzdCDQvdCwICRyZXN1bHRfYXJyYXlbMV1cbiI7CiAgIH07CiAgICR0ZXN0PSRyZXN1bHRfYXJyYXlbMV07ICMgdiAkcmVzdWx0X2FycmF5WzBdIC0gdnNlZ2RhIHZpYnJhbml5IHZhcmlhbiwgcG9ldG9tZSBkbHl6IHNtZW5pIHZpYm9yZSBiZXJlbSAkcmVzdWx0X2FycmF5WzFdCgogICBpZiAoJHRlc3QgZXEgJHRhcmdldCkKICAgewogICAgaWYgKCRvdXRwdXQpCiAgICB7CiAgICAgcHJpbnQgIlJlc3VsdGF0OiBVZ2FkYWxpXG4iOwogICAgfTsKICAgICRzdWNjZXNzKys7CiAgIH0KICAgZWxzZQogICB7CiAgICBpZiAoJG91dHB1dCkKICAgIHsKICAgICBwcmludCAiUmVzdWx0YXQ6IE5lIHVnYWRhbGlcbiI7CiAgICB9OwogICAgJGZhaWxlZCsrOwogICB9OwogIH0KIGVsc2lmICgkYW5zd2VyPT0yKSAjdmliaXJhZW0gcmFuZG9tb20gdnRvcm95IHJhegogewogICAkdGVzdD0kcmVzdWx0X2FycmF5W2ludCByYW5kKDIpXTsKICAgaWYgKCRvdXRwdXQpCiAgIHsKICAgIHByaW50ICJEZWxhZW0gdmlib3Igc25vdmEgcmFuZG9tb20sIHZpYnJhbGkgJHRlc3RcbiI7CiAgIH07CiAgIGlmICgkdGVzdCBlcSAkdGFyZ2V0KQogICB7CiAgICBpZiAoJG91dHB1dCkKICAgIHsKICAgICBwcmludCAiUmVzdWx0YXQ6IFVnYWRhbGlcbiI7CiAgICB9OwogICAgJHN1Y2Nlc3MrKzsKICAgfQogICBlbHNlCiAgIHsKICAgIGlmICgkb3V0cHV0KQogICAgewogICAgIHByaW50ICJSZXN1bHRhdDogTmUgdWdhZGFsaVxuIjsKICAgIH07CiAgICAkZmFpbGVkKys7CiAgIH07CgoKIH07CiBpZiAoJG91dHB1dCkKIHsKICBwcmludCAiXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7CiAgfTsKfTsKCnByaW50ICJcblZzZWdvOiAkY291bnRcbiI7CnByaW50ICJVZ2FkYW5vOiAkc3VjY2Vzc1xuIjsKcHJpbnQgIk5lIHVnYWRhbm86ICRmYWlsZWRcbiI7Cg==
				
				 
			
				
			
			
				
	
		
		
		
		 
	
		Zagadali: blue
Popitka: green
Vtoroy shans - vibor iz: green,blue
Menyaem vibor s green на blue
Resultat: Ugadali
=========================================================
Zagadali: green
Popitka: red
Vtoroy shans - vibor iz: red,green
Menyaem vibor s red на green
Resultat: Ugadali
=========================================================
Zagadali: red
Popitka: red
Vtoroy shans - vibor iz: red,blue
Menyaem vibor s red на blue
Resultat: Ne ugadali
=========================================================
Zagadali: blue
Popitka: red
Vtoroy shans - vibor iz: red,blue
Menyaem vibor s red на blue
Resultat: Ugadali
=========================================================
Zagadali: blue
Popitka: blue
Vtoroy shans - vibor iz: blue,green
Menyaem vibor s blue на green
Resultat: Ne ugadali
=========================================================
Zagadali: blue
Popitka: red
Vtoroy shans - vibor iz: red,blue
Menyaem vibor s red на blue
Resultat: Ugadali
=========================================================
Zagadali: green
Popitka: red
Vtoroy shans - vibor iz: red,green
Menyaem vibor s red на green
Resultat: Ugadali
=========================================================
Zagadali: green
Popitka: red
Vtoroy shans - vibor iz: red,green
Menyaem vibor s red на green
Resultat: Ugadali
=========================================================
Zagadali: green
Popitka: green
Vtoroy shans - vibor iz: green,blue
Menyaem vibor s green на blue
Resultat: Ne ugadali
=========================================================
Zagadali: red
Popitka: green
Vtoroy shans - vibor iz: green,red
Menyaem vibor s green на red
Resultat: Ugadali
=========================================================
Vsego: 10
Ugadano: 7
Ne ugadano: 3