Repository: allicen/Java-1000 Branch: master Commit: 614c2af783aa Files: 697 Total size: 1.0 MB Directory structure: gitextract_lj836lbl/ ├── Not_deaf_phone/ │ ├── NotDeafPhone.java │ └── README.md ├── README.md ├── _other_tasks_/ │ ├── README.md │ ├── a_glutton/ │ │ ├── Glutton.java │ │ └── README.md │ ├── b_robot_secretary/ │ │ ├── README.md │ │ └── RobotSecretary.java │ ├── b_test_task_in_naumen/ │ │ ├── README.md │ │ └── TestTaskInNaumen.java │ ├── big_add_one/ │ │ ├── BigAddOne.java │ │ ├── BigAddOneShort.java │ │ └── README.md │ ├── big_comparing_numbers/ │ │ ├── BigComparingNumbers.java │ │ ├── BigComparingNumbersShort.java │ │ └── README.md │ ├── big_difference_numbers/ │ │ ├── BigDifferenceNumbers.java │ │ ├── BigDifferenceNumbersShort.java │ │ └── README.md │ ├── big_multiplication/ │ │ ├── BigMultiplication.java │ │ ├── BigMultiplicationShort.java │ │ └── README.md │ ├── big_sum_numbers/ │ │ ├── BigSumNumbers.java │ │ ├── BigSumNumbersShort.java │ │ └── README.md │ ├── book/ │ │ ├── Book.java │ │ └── README.md │ ├── c_walk/ │ │ ├── README.md │ │ └── Walk.java │ ├── champion/ │ │ └── Champion.java │ ├── collector/ │ │ ├── Collector.java │ │ └── README.md │ ├── d_leras_pens/ │ │ ├── LerasPens.java │ │ └── README.md │ ├── d_reliable_tag/ │ │ ├── README.md │ │ └── ReliableTag.java │ ├── e_knights_and_knaves/ │ │ ├── KnightsAndKnaves.java │ │ └── README.md │ ├── exit_from_maze/ │ │ ├── ExitFromMaze.java │ │ └── README.md │ ├── f_positive_divisors/ │ │ ├── PositiveDivisors.java │ │ └── README.md │ ├── g_couriers_implementation/ │ │ ├── CouriersImplementation.java │ │ ├── README.md │ │ └── variant_two.py │ ├── gcd/ │ │ ├── Gcd.java │ │ └── README.md │ ├── i_basketball_game/ │ │ ├── BasketballGame.java │ │ └── README.md │ ├── intern_day/ │ │ ├── InternDay.java │ │ └── README.md │ ├── inverse_simple_module/ │ │ ├── InverseSimpleModule.java │ │ └── README.md │ ├── j_digital_protocol/ │ │ ├── DigitalProtocol.java │ │ └── README.md │ ├── kvn/ │ │ ├── Kvn.java │ │ └── README.md │ ├── large_prime_numbers/ │ │ ├── LargePrimeNumbers.java │ │ └── README.md │ ├── microbiology/ │ │ ├── Microbiology.java │ │ └── README.md │ ├── multigraph/ │ │ ├── Multigraph.java │ │ └── README.md │ ├── numbers/ │ │ ├── Numbers.java │ │ └── README.md │ ├── numeric_palindrome/ │ │ ├── NumericPalindrome.java │ │ └── README.md │ ├── play/ │ │ ├── Play.java │ │ └── README.md │ ├── rapid_exponentiation/ │ │ ├── README.md │ │ └── RapidExponentiation.java │ ├── search/ │ │ ├── README.md │ │ └── Search.java │ ├── second_above/ │ │ ├── README.md │ │ └── SecondAbove.java │ └── tower/ │ ├── README.md │ └── Tower.java ├── a_plus_b/ │ ├── README.md │ └── Summ.java ├── a_yandex/ │ └── Main.java ├── abba_gold/ │ ├── AbbaGold.java │ └── README.md ├── acm_world_finals/ │ ├── AcmWorldFnals.java │ └── README.md ├── adjacent_cells/ │ ├── AdjacentCells.java │ └── README.md ├── adjustment/ │ ├── Adjustment.java │ └── README.md ├── alarm/ │ ├── Alarm.java │ └── README.md ├── alcohol/ │ ├── Alcohol.java │ └── README.md ├── alibaba/ │ ├── Alibaba.java │ └── README.md ├── alien/ │ ├── Alien.java │ └── README.md ├── alphabet/ │ ├── Alphabet.java │ └── README.md ├── amount_two/ │ ├── AmountTwo.java │ └── README.md ├── anagram_two/ │ ├── AnagramTwo.java │ └── README.md ├── anagrams/ │ ├── Anagrams.java │ └── README.md ├── anti_palindrome/ │ ├── AntiPalindrome.java │ └── README.md ├── area_triangle/ │ ├── README.md │ └── areaTriangle.java ├── arithmetic/ │ ├── Arithmetic.java │ └── README.md ├── arithmetic_progression/ │ ├── ArithmeticProgression.java │ └── README.md ├── arrange/ │ ├── Arrange.java │ └── README.md ├── arrival_time/ │ ├── ArrivalTime.java │ └── README.md ├── arrows/ │ ├── Arrows.java │ └── README.md ├── artist/ │ ├── Artist.java │ └── README.md ├── automorphic_numbers/ │ ├── AutomorphicNumbers.java │ └── README.md ├── ballot/ │ ├── Ballot.java │ └── README.md ├── base_of_terrorists/ │ ├── BaseOfTerrorists.java │ └── README.md ├── basketball/ │ ├── Basketball.java │ └── README.md ├── beads/ │ ├── Beads.java │ └── README.md ├── beautiful_numbers/ │ ├── BeautifulNumbers.java │ └── README.md ├── beautiful_wall/ │ ├── BeautifulWall.java │ └── README.md ├── bell/ │ ├── Bell.java │ └── README.md ├── bertrand_postulate/ │ ├── BertrandPostulate.java │ └── README.md ├── best_divider/ │ ├── BestDivider.java │ └── README.md ├── binary_numbers/ │ ├── BinaryNumbers.java │ └── README.md ├── birthday/ │ ├── Birthday.java │ └── README.md ├── birthday_two/ │ ├── BirthdayTwo.java │ └── README.md ├── bit_reverse/ │ ├── BitReverse.java │ └── README.md ├── black_white_graphics/ │ ├── BlackWhiteGraphics.java │ └── README.md ├── board/ │ ├── Board.java │ └── README.md ├── bolts_nuts/ │ ├── BoltsNuts.java │ └── README.md ├── bowling/ │ ├── Bowling.java │ └── README.md ├── boxes/ │ ├── Boxes.java │ └── README.md ├── building_of_schools/ │ ├── BuildingOfSchools.java │ └── README.md ├── bulls_cows/ │ ├── BullsCows.java │ └── README.md ├── bus_tour/ │ ├── BusTour.java │ └── README.md ├── business/ │ ├── Business.java │ └── README.md ├── cake/ │ ├── Cake.java │ └── README.md ├── cake_two/ │ ├── CakeTwo.java │ └── README.md ├── carousel/ │ ├── Carousel.java │ └── README.md ├── casting/ │ ├── Casting.java │ └── README.md ├── castle/ │ ├── Castle.java │ └── README.md ├── cell/ │ ├── Cell.java │ └── README.md ├── census/ │ ├── Census.java │ └── README.md ├── checking_for_likability/ │ ├── CheckingForLikability.java │ └── README.md ├── chess/ │ ├── Chess.java │ └── README.md ├── chess_field/ │ ├── ChessField.java │ └── README.md ├── chess_horse/ │ ├── ChessHorse.java │ └── README.md ├── chess_workshop/ │ ├── ChessWorkshop.java │ └── README.md ├── chessboard/ │ ├── Chessboard.java │ └── README.md ├── chessboard_figure/ │ ├── ChessboardFigure.java │ └── README.md ├── chest_of_billy_bones/ │ ├── ChestOfBillyBones.java │ └── README.md ├── circle/ │ ├── Circle.java │ └── README.md ├── circle_two/ │ ├── CircleTwo.java │ └── README.md ├── clock/ │ ├── Clock.java │ └── README.md ├── clock_fight/ │ ├── ClockFight.java │ └── README.md ├── clothes/ │ ├── Clothes.java │ └── README.md ├── coin/ │ ├── Coin.java │ └── README.md ├── coin_two/ │ ├── CoinTwo.java │ └── README.md ├── colored_rain/ │ ├── ColoredRain.java │ └── README.md ├── coloring_multiplication_tables/ │ ├── ColoringMultiplicationTables.java │ └── README.md ├── community_of_robots/ │ ├── CommunityOfRobots.java │ └── README.md ├── component/ │ ├── Component.java │ └── README.md ├── compression_binary_sequences/ │ ├── CompressionBinarySequences.java │ └── README.md ├── conditioner/ │ ├── Conditioner.java │ └── README.md ├── constant_kaprekar/ │ ├── ConstantKaprekar.java │ └── README.md ├── construction_of_roads/ │ ├── ConstructionOfRoads.java │ └── README.md ├── contest/ │ ├── Contest.java │ └── README.md ├── convex_hull/ │ ├── ConvexHull.java │ └── README.md ├── crane/ │ ├── Crane.java │ └── README.md ├── creator/ │ ├── Creator.java │ └── README.md ├── cross_zero/ │ ├── CrossZero.java │ └── README.md ├── cryptogram/ │ ├── Cryptogram.java │ └── README.md ├── cut/ │ ├── Cut.java │ └── README.md ├── cute_pattern/ │ ├── CutePattern.java │ └── README.md ├── dates/ │ ├── Dates.java │ └── README.md ├── decoding/ │ ├── Decoding.java │ └── README.md ├── deletion/ │ ├── Deletion.java │ └── README.md ├── delta/ │ ├── Delta.java │ └── README.md ├── dictionary/ │ ├── Dictionary.java │ └── READMe.md ├── different_numbers/ │ ├── DifferentNumbers.java │ └── README.md ├── digits/ │ ├── Digits.java │ └── README.md ├── digits_after_point/ │ ├── DigitsAfterPoint.java │ └── README.md ├── diplomas/ │ ├── Diplomas.java │ └── README.md ├── divider/ │ ├── Divider.java │ └── README.md ├── divider_two/ │ └── DividerTwo.java ├── divination/ │ ├── Divination.java │ └── README.md ├── division_two/ │ ├── DivisionTwo.java │ └── README.md ├── dots_on_dominoes/ │ ├── DotsOnDominoes.java │ └── README.md ├── double_numbers/ │ ├── DoubleNumbers.java │ └── README.md ├── economy/ │ ├── Economy.java │ └── README.md ├── election_of_priests/ │ ├── ElectionOfPriests.java │ └── README.md ├── elevator/ │ ├── Elevator.java │ └── README.md ├── eleven/ │ ├── Eleven.java │ └── README.md ├── encryption/ │ ├── Encryption.java │ └── README.md ├── eniya/ │ ├── Eniya.java │ └── README.md ├── even_odd_task/ │ ├── EvenOddTask.java │ └── README.md ├── event/ │ ├── Event.java │ └── README.md ├── evolution/ │ ├── Evolution.java │ └── README.md ├── exam/ │ ├── Exam.java │ └── README.md ├── factorial/ │ ├── Factorial.java │ └── README.md ├── fast_train/ │ ├── FastTrain.java │ └── README.md ├── fibonacci/ │ ├── Fibonacci.java │ └── README.md ├── fibonacci_again/ │ ├── FibonacciAgain.java │ └── README.md ├── fibonacci_sequence/ │ ├── FibonacciSequence.java │ └── README.md ├── fibonacci_two/ │ ├── FibonacciTwo.java │ └── README.md ├── field/ │ ├── Field.java │ └── README.md ├── field_miracles/ │ ├── FieldMiracles.java │ └── README.md ├── fire/ │ ├── Fire.java │ └── README.md ├── fishing_net/ │ ├── README.md │ └── fishingNet.java ├── floret/ │ ├── Floret.java │ └── README.md ├── football/ │ ├── Football.java │ └── README.md ├── frendly_numbers/ │ ├── FrendlyNumbers.java │ └── README.md ├── fun_game/ │ ├── FunGame.java │ └── README.md ├── funny_sequence/ │ ├── FunnySequence.java │ └── README.md ├── gambling_shrek/ │ ├── GamblingShrek.java │ └── README.md ├── game/ │ ├── Game.java │ └── README.md ├── game_meter/ │ ├── GameMeter.java │ └── README.md ├── game_theory/ │ ├── GameTheory.java │ └── README.md ├── gardener_artist/ │ ├── GardenerArtist.java │ └── README.md ├── gifts/ │ ├── Gifts.java │ └── README.md ├── gnome_entertainment/ │ ├── GnomeEntertainment.java │ └── README.md ├── goldbach_conjecture/ │ ├── GoldbachConjecture.java │ └── README.md ├── goldbach_conjecture_two/ │ ├── GoldbachConjectureTwo.java │ └── README.md ├── golden_sand/ │ ├── README.md │ └── goldenSand.java ├── gulliver/ │ ├── Gulliver.java │ └── README.md ├── hairy_business/ │ ├── HairyBusiness.java │ └── README.md ├── hamming_distance/ │ ├── HammingDistance.java │ └── README.md ├── heron/ │ ├── Heron.java │ └── README.md ├── hockey/ │ ├── Hockey.java │ └── README.md ├── home_school/ │ ├── HomeSchool.java │ └── README.md ├── homework/ │ ├── Homework.java │ └── README.md ├── honey/ │ ├── Honey.java │ └── README.md ├── horse/ │ ├── Horse.java │ └── README.md ├── horse_racing/ │ ├── HorseRacing.java │ └── README.md ├── hunter/ │ ├── Hunter.java │ └── README.md ├── idler/ │ ├── Idler.java │ └── README.md ├── in_bus/ │ ├── README.md │ └── inBus.java ├── java_vs_pcc/ │ ├── JavaVsPcc.java │ └── README.md ├── jumpy_journey/ │ ├── JumpyJourney.java │ └── README.md ├── k_numbers/ │ ├── KNumbers.java │ └── README.md ├── keyboard/ │ ├── Keyboard.java │ └── README.md ├── keyboard_two/ │ ├── KeyboardTwo.java │ └── README.md ├── known_everybody/ │ ├── KnownEverybody.java │ └── README.md ├── language_recognition/ │ ├── LanguageRecognition.java │ └── README.md ├── last_digit/ │ ├── LastDigit.java │ └── README.md ├── least_common_multiple/ │ ├── LeastCommonMultiple.java │ └── README.md ├── left_recursion/ │ ├── LeftRecursion.java │ └── README.md ├── letter/ │ ├── Letter.java │ └── README.md ├── lexicographic_order_numbers/ │ ├── LexicographicOrderNumbers.java │ └── README.md ├── lisaalisa/ │ ├── Lisaalisa.java │ └── README.md ├── list_of_items/ │ ├── ListOfItems.java │ └── README.md ├── live_journal/ │ ├── LiveJournal.java │ └── README.md ├── lucky_ticket/ │ ├── LuckyTicket.java │ └── README.md ├── lucky_ticket_two/ │ ├── LuckyTicketTwo.java │ └── README.md ├── manhattan_streets/ │ ├── ManhattanStreets.java │ └── README.md ├── maximum_three/ │ ├── MaximumThree.java │ └── README.md ├── military_base/ │ ├── MilitaryBase.java │ └── README.md ├── minimum_path_table/ │ ├── MinimumPathTable.java │ └── README.md ├── mockery/ │ ├── Mockery.java │ └── README.md ├── module_amount/ │ ├── ModuleAmount.java │ └── README.md ├── money_money_money/ │ ├── MoneyMoneyMoney.java │ └── README.md ├── more_less/ │ ├── MoreLess.java │ └── README.md ├── mouse/ │ ├── Mouse.java │ └── README.md ├── multi_digits/ │ ├── MultiDigits.java │ └── README.md ├── multiplication_of_numbers/ │ ├── MultiplicationOfNumbers.java │ └── README.md ├── multiplication_table/ │ ├── MultiplicationTable.java │ └── README.md ├── n_digit_numbers/ │ ├── NDigitNumbers.java │ └── README.md ├── natural_number_series/ │ ├── NaturalNumberSeries.java │ └── README.md ├── neerc/ │ ├── Neerc.java │ └── README.md ├── neznaika/ │ ├── Neznaika.java │ └── README.md ├── number_buses/ │ ├── NumberBuses.java │ └── README.md ├── number_e/ │ ├── NumberE.java │ └── README.md ├── number_of_smith/ │ ├── NumberOfSmith.java │ └── README.md ├── number_palindrome/ │ ├── NumberPalindrome.java │ └── README.md ├── number_participants_olympiad/ │ ├── NumberParticipantsOlympiad.java │ └── README.md ├── numbers/ │ ├── Numbers.java │ └── README.md ├── numbers_game/ │ ├── NumbersGame.java │ └── README.md ├── numbers_without_same_digit/ │ ├── NumbersWithoutSameDigit.java │ └── README.md ├── numerologist/ │ ├── Numerologist.java │ └── README.md ├── nutlets/ │ ├── Nutlets.java │ └── README.md ├── office/ │ ├── Office.java │ └── README.md ├── only_right_down/ │ ├── OnlyRightDown.java │ └── README.md ├── optimization_circle/ │ ├── OptimizationCircle.java │ └── README.md ├── oranges/ │ ├── Oranges.java │ └── README.md ├── oversteping/ │ ├── Oversteping.java │ └── README.md ├── palindrome/ │ ├── Palindrome.java │ └── README.md ├── palindromic_time/ │ ├── PalindromicTime.java │ └── README.md ├── parallelepiped/ │ ├── Parallelepiped.java │ └── README.md ├── percents/ │ ├── Percents.java │ └── README.md ├── permutation/ │ ├── Permutation.java │ └── README.md ├── phone/ │ ├── Phone.java │ └── README.md ├── photographic_negative/ │ ├── PhotographicNegative.java │ └── README.md ├── picking_blueberries/ │ ├── PickingBlueberries.java │ └── README.md ├── ping/ │ ├── Ping.java │ └── README.md ├── pizza/ │ ├── Pizza.java │ └── README.md ├── playing_dice/ │ ├── PlayingDice.java │ └── README.md ├── playing_with_matches/ │ ├── PlayingWithMatches.java │ └── README.md ├── playing_with_pawn/ │ ├── PlayingWithPawn.java │ └── README.md ├── playing_with_pebbles/ │ ├── PlayingWithPebbles.java │ └── README.md ├── poker/ │ ├── Poker.java │ └── README.md ├── pow_string/ │ ├── PowString.java │ └── README.md ├── power_numbers/ │ ├── PowerNumbers.java │ └── README.md ├── premium/ │ ├── Premium.java │ └── README.md ├── prime_factorization/ │ ├── PrimeFactorization.java │ └── README.md ├── prince_and_dragon/ │ ├── PrinceAndDragon.java │ └── README.md ├── professor/ │ ├── Professor.java │ └── README.md ├── program_template/ │ ├── ProgramTemplate.java │ └── README.md ├── programmer_day/ │ ├── ProgrammerDay.java │ └── README.md ├── puzzle_queens/ │ ├── PuzzleQueens.java │ └── README.md ├── quadratic_equation/ │ ├── QuadraticEquation.java │ └── README.md ├── queue/ │ ├── Queue.java │ └── README.md ├── rally/ │ ├── README.md │ └── Rrally.java ├── rect/ │ ├── README.md │ └── Rect.java ├── rectangle_two/ │ ├── README.md │ └── RectangleTwo.java ├── repair/ │ ├── README.md │ └── Repair.java ├── reverse_permutation/ │ ├── README.md │ └── ReversePermutation.java ├── riddle/ │ ├── README.md │ └── Riddle.java ├── ring/ │ ├── README.md │ └── Ring.java ├── road/ │ ├── README.md │ └── Road.java ├── robot_k79/ │ ├── README.md │ └── RobotK79.java ├── rook/ │ ├── README.md │ └── Rook.java ├── runeword/ │ ├── README.md │ └── Runeword.java ├── saddle_point/ │ ├── README.md │ └── SaddlePoint.java ├── salads/ │ ├── README.md │ └── Salads.java ├── salary/ │ ├── README.md │ └── Salary.java ├── same_numbers/ │ ├── README.md │ └── SameNumbers.java ├── sapper/ │ ├── README.md │ └── Sapper.java ├── school_algebra/ │ ├── README.md │ └── SchoolAlgebra.java ├── scoring/ │ ├── README.md │ └── Scoring.java ├── sea_battle_two/ │ ├── README.md │ └── SeaBattleTwo.java ├── season/ │ ├── README.md │ └── Season.java ├── sequence_conversion_two/ │ ├── README.md │ └── SequenceConversionTwo.java ├── sequence_two/ │ ├── README.md │ └── SequenceTwo.java ├── shelf/ │ ├── README.md │ └── Shelf.java ├── shift_permutation/ │ ├── README.md │ └── ShiftPermutation.java ├── shift_text/ │ ├── README.md │ └── ShiftText.java ├── shooter/ │ ├── README.md │ └── Shooter.java ├── shooting_championship/ │ ├── README.md │ └── ShootingChampionship.java ├── short_sequence/ │ ├── README.md │ └── ShortSequence.java ├── similar_arrays/ │ ├── README.md │ └── SimilarArrays.java ├── simple_again/ │ ├── README.md │ └── SimpleAgain.java ├── simple_calculation/ │ ├── README.md │ └── SimpleCalculation.java ├── simple_number/ │ ├── README.md │ └── SimpleNumber.java ├── simple_numbers_two/ │ ├── README.md │ └── SimpleNumbersTwo.java ├── simple_radical/ │ ├── README.md │ └── SimpleRadical.java ├── simple_series/ │ ├── README.md │ └── SimpleSeries.java ├── simple_sorting/ │ ├── README.md │ └── SimpleSorting.java ├── single_nod/ │ ├── README.md │ └── SingleNod.java ├── smallest_number_system/ │ ├── README.md │ └── SmallestNumberSystem.java ├── sorting_count/ │ ├── README.md │ └── SortingCount.java ├── spelling/ │ ├── README.md │ └── Spelling.java ├── split_parts/ │ ├── README.md │ └── SplitParts.java ├── srange_lottery/ │ ├── README.md │ └── SrangeLottery.java ├── stairs/ │ ├── README.md │ └── Stairs.java ├── state_machine/ │ ├── README.md │ └── stateMachine.java ├── statistics/ │ ├── README.md │ └── Statistics.java ├── step_happiness/ │ ├── README.md │ └── StepHappiness.java ├── strawberry/ │ ├── README.md │ └── Strawberry.java ├── string_book/ │ ├── README.md │ └── StringBook.java ├── subarray_array/ │ ├── README.md │ └── SubarrayArray.java ├── substrings_identical_letters/ │ ├── README.md │ └── SubstringsIdenticalLetters.java ├── sudoku/ │ ├── README.md │ └── Sudoku.java ├── sum/ │ ├── README.md │ └── Sum.java ├── sum_max_min/ │ ├── README.md │ └── SumMaxMin.java ├── sum_n_digit_numbers/ │ ├── README.md │ └── SumNDigitNumbers.java ├── symmetry/ │ ├── README.md │ └── Symmetry.java ├── task_of_josephus/ │ ├── README.md │ └── TaskOfJosephus.java ├── tax/ │ ├── README.md │ └── Tax.java ├── tea/ │ ├── README.md │ └── Tea.java ├── teleportation/ │ ├── README.md │ └── Teleportation.java ├── temporary_key/ │ ├── README.md │ └── TemporaryKey.java ├── thaw/ │ ├── README.md │ └── Thaw.java ├── thimble/ │ ├── README.md │ └── Thimble.java ├── three_fat_men/ │ ├── README.md │ └── threeFatMen.java ├── time_sort/ │ ├── README.md │ └── TimeSort.java ├── timer/ │ ├── README.md │ └── Timer.java ├── topcoder/ │ ├── README.md │ └── TopCoder.java ├── tourist/ │ ├── README.md │ └── Tourist.java ├── traffic_lights/ │ ├── README.md │ └── TrafficLights.java ├── traps/ │ ├── README.md │ └── Traps.java ├── treasure/ │ ├── README.md │ └── Treasure.java ├── turn/ │ ├── README.md │ └── Turn.java ├── twenty_five/ │ ├── README.md │ └── twentyFive.java ├── two_bandits/ │ ├── README.md │ └── TwoBandits.java ├── two_pow_n/ │ ├── README.md │ └── TwoPowN.java ├── two_ring/ │ ├── README.md │ └── TwoRing.java ├── two_sequences/ │ ├── README.md │ └── TwoSequences.java ├── two_simple_number/ │ ├── README.md │ └── TwoSimpleNumber.java ├── underground/ │ ├── README.md │ └── Underground.java ├── unit/ │ ├── README.md │ └── Unit.java ├── unix/ │ ├── README.md │ └── Unix.java ├── unpack_string/ │ ├── README.md │ └── UnpackString.java ├── usm_dialogs/ │ ├── README.md │ └── UsmDialogs.java ├── wagons/ │ ├── README.md │ └── Wagons.java ├── watermelon/ │ ├── README.md │ └── Watermelon.java ├── wedding/ │ ├── README.md │ └── Wedding.java ├── weighing/ │ ├── README.md │ └── Weighing.java ├── wholesale/ │ ├── README.md │ └── Wholesale.java ├── wire_transfer/ │ ├── README.md │ └── WireTransfer.java ├── word/ │ ├── README.md │ └── Word.java ├── worst_divider/ │ ├── README.md │ └── WorstDivider.java └── zero/ ├── README.md └── Zero.java ================================================ FILE CONTENTS ================================================ ================================================ FILE: Not_deaf_phone/NotDeafPhone.java ================================================ package Not_deaf_phone; import java.io.*; import java.util.*; public class NotDeafPhone { public static void main(String[] args) throws IOException { String str; FileReader fin = new FileReader("input.txt"); // Получение числа из файла Scanner sc = new Scanner(fin); str = sc.nextLine(); FileWriter countStepFinish = new FileWriter("output.txt");// Запись числа в файл countStepFinish.write(str); countStepFinish.close(); } } ================================================ FILE: Not_deaf_phone/README.md ================================================
Время: 1 сек.
Память: 16 Мб
Сложность: 1%
Возможно, что Вы когда то играли в игру «Глухой телефон», либо слышали о ней. В этой игре участникам приходится передавать информацию друг другу различными способами: словесно, образно, бывает даже приходится писать левой рукой текст, который другой участник команды должен будет прочитать. Так же известно, что практически никогда передаваемая информация не доходит до конечного адресата. Обозначим за Fi(x) функцию, которая преобразует текст передаваемой информации x в ту, которую получит участник i+1 от участника i. Тогда последний n-й участник получит данные y, которые будут выражаться следующей формулой:
y = Fn-1(Fn-2(…F2(F1(x))))
Но Вам необходимо исключить какие-либо внешние факторы, которые могут исказить исходную информацию и Вы должны реализовать программу «неглухой телефон», которая сможет безошибочно доставлять исходные данные, т.е. в нашем случае функция Fi(x) = x для всех i от 1 до n-1.
В единственной строке входного файла input.txt записано натуральное число от 1 до 100.
В выходной файл output.txt нужно вывести в точности то же число, которое задано во входном файле.
| Ввод | Вывод |
|---|---|
| 5 | 5 |
Решение задач с сайта acmp.ru.
Задачи в порядке возрастания сложности:
Задачи из других источников: перейти в папку с задачами.
================================================ FILE: _other_tasks_/README.md ================================================Решение различных задач без указания сложности.
Время: 1 сек.
Память: 64 Мб
Очень голодные Сева, Кирилл, Дима, Коля, Витя сидят в аудитории и ждут начала консультации по математике. К сожалению, на всех пятерых у них оказалась только одна печенька. Единогласно было решено, что делить печеньку на всех поровну — абсолютно неинтересная идея. Тогда ребята решили сыграть в «обжору».
Правила «Обжоры»: игроки по очереди откусывают от печеньки кусочек любого размера. Обжорой считается тот, кто доел печенье.
Было решено ходить в таком порядке: Сева, Кирилл, Дима, Коля, Витя. После Вити снова ходит Сева.
Ребята решили поберечь мозги перед обсуждением сложных математических вопросов, поэтому они придумали простые стратегии: каждый из мальчиков выбрал некоторую фиксированную долю, которую он будет откусывать от оставшейся печеньки на своём ходу. Сева будет кусать 1/a часть, Кирилл — 1/b, Дима — 1/c, Коля — 1/d, Витя — 1/e.
Еще известно, что если через 100 ходов печенька не будет доедена, то в аудиторию зайдёт очень голодная Марина и тут же съест всё, что осталось.
Мальчикам стало интересно узнать ещё до начала игры, кто же станет обжорой, но напрягаться совсем не хотелось, поэтому они обратились к вам за помощью. Помогите ребятам найти обжору.
В первой строке вводятся 5 целых чисел через пробел: a, b, c, d, e (1 ≤ a, b, c, d, e ≤ 100) из условия задач.
Выведите имя обжоры на английском языке. Ниже приведены переводы имён:
| Ввод | Вывод |
|---|---|
| 5 2 1 3 4 | Dmitry |
| 1 1 1 1 1 | Vsevolod |
Пояснение к первому примеру:
На первом ходе Сева откусит 1/5 долю печеньки, останется 4/5 = 1 − 1 · 1/5. На втором ходе Кирилл откусит 1/2 долю, то есть останется 2/5 = 4/5 − 4/5 · 1/2. На третьем ходу Дима откусит 1/1 долю печеньки, то есть доест её, т. к. останется 0 = 2/5 − 2/5 · 1/1.
================================================ FILE: _other_tasks_/b_robot_secretary/README.md ================================================Время: 2 сек.
Память: 256 Мб
Настя любит программировать и увлекается старой компьютерной техникой. Однажды она увидела в музее Яндекса робота для набора текста на печатной машинке. Настя захотела проверить, насколько оптимально работает робот.
Клавиатура печатной машинки состоит из 26 клавиш английского алфавита, клавиши пробела и клавиши Shift, которая изменяет регистр следующей набранной буквы на противоположный текущему. Двойное же нажатие на клавишу Shift изменяет текущий регистр машинки. В начале работы регистр всегда нижний, то есть при наборе без клавиши Shift будут печататься строчные буквы. Пробел одинаково набирается в обоих регистрах.
Настя хочет понять, за какое минимальное количество нажатий можно набрать текст, чтобы сравнить это с результатами робота.
Входные данные – строка s (1 ≤ |s| ≤ 100 000), состоящая из прописных и строчных букв английского алфавита, а также символа пробела.
Выведите единственное число — минимальное количество нажатий, необходимое, чтобы напечатать данную строку./p>
| Ввод | Вывод |
|---|---|
| Hello World | 13 |
| APPLE II | 10 |
Время: 1 сек.
Память: 64 Мб
NAUMEN — серьёзная компания. Кого попало на работу не берут. Первокурсник Арсений не боится трудностей и готов сегодня же приступить к выполнению тестового задания. Однако есть одна проблема. Арсений, как и большинство первокурсников, программирует только на C\# (и ещё немножко на C++), а в NAUMEN принято писать код на Java. Арсений, конечно, обещает, что быстро сможет выучить новый язык программирования, к тому же Java и C\# очень похожи. Однако, на слово Арсению верить никто не готов, поэтому специально для него подготовили несложную тестовую задачу, которую он должен решить на Java.
Поскольку задача тестовая, она должна проверять все базовые конструкции языка, а именно:
Чтобы сделать жизнь Арсения ещё веселее, было решено добавить в задачу что-нибудь из курса алгебры. Так и родилась следующая задача:
Даны два вектора: n-мерный вектор A над пространством положительных целых чисел и m-мерный вектор B над пространством строк. Требуется найти их «скалярное произведение». Любители алгебры уже всё поняли и побежали скорее писать решение за Арсения, а для всех остальных мы всё-таки поясним.
n-мерный вектор над пространством целых чисел — это есть ни что иное, как массив чисел A длины n. Аналогично, m-мерный вектор над пространством строк — это массив строк B длины m. Произведением строки x и положительного целого числа y (обозначение x × y) называется строка x, повторённая y раз. «Скалярным произведением» векторов A и B называется вектор C, имеющий такую же длину как и вектор A. i-й элемент вектора C равен B[i % m]× A[i] (i % m обозначает остаток от деления i на m). Требуется найти результат «скалярного произведения» двух заданных векторов.
Арсений уже написал решение на Java, но прежде чем отправить его на проверку, он хочет убедиться, что в нём нет багов. Поэтому он просит вас написать ещё одно решение на любом языке, чтобы сравнить ответы. Помогите Арсению попасть в NAUMEN, решите тестовое задание!
В первой строке вводится целое число n — длина вектора A (1 ≤ n ≤ 10).
В следующей строке через пробел вводятся n положительных целых чисел — элементы вектора A, перечисленные по порядку начиная с первого и заканчивая последним. Каждый элемент вектора A не превосходит 10.
В следующей строке вводится целое число m — длина вектора B (1 ≤ m ≤ 10).
В следующей строке через пробел вводятся m непустых строк — элементы вектора B, перечисленные по порядку начиная с первого и заканчивая последним. Длина каждой строки из вектора B не превосходит 10. Cтроки состоят из маленьких и больших латинских букв.
Выведите ровно n строк через пробел — элементы вектора C, являющегося «скалярным произведением» векторов A и B.
| Ввод | Вывод |
|---|---|
| 3 1 1 1 3 I love Naumen |
I love Naumen |
| 5 1 1 1 2 2 3 Good luck Arseny |
Good luck Arseny GoodGood luckluck |
Время: 1 сек.
Память: 64Mb
Напишите программу, которая прибавляет 1 к целому числу N длина числа N до 1000 знаков
Дано чиcло N
Выведите число N+1
| Ввод | Вывод |
|---|---|
| 1 | 2 |
| 5 | 6 |
Время: 1 сек.
Память: 64Mb
Напишите программу, которая сравнит два целых неотрицательных числа и выведет результат сравнения.
Даны два целых неотрицательных числа, в записи каждого не более 200 цифр.
Выведите знак <, если первое число меньше второго, знак >, если первое больше второго или знак =, если числа совпадают.
| Ввод | Вывод |
|---|---|
| 0 0 |
= |
| 63416241155558449158 63416241155558449157 |
> |
Время: 1 сек.
Память: 64Mb
Напишите программу, вычисляющую разность двух целых неотрицательных чисел. Длина каждого из чисел не превосходит 250.
Даны два числа, каждое записано на отдельной строке. Гарантируется, что первое число не меньше второго.
Выведите разность данных чисел.
| Ввод | Вывод |
|---|---|
| 987654 876543 |
111111 |
| 100000 1 |
99999 |
Время: 1 сек.
Память: 64Mb
Напишите программу, которая вычисляет произведение двух целых неотрицательных чисел. Длина каждого числа не превышает 250 знаков.
Даны два числа, каждое записано в отдельной строке.
Выведите произведение чисел.
| Ввод | Вывод |
|---|---|
| 827364 34 |
28130376 |
| 23 9999 |
229977 |
Время: 1 сек.
Память: 64Mb
Напишите программу, которая вычисляет сумму двух целых неотрицательных чисел. Длина каждого из чисел не превосходит 250.
Даны два числа, каждое записано на отдельной строке.
Выведите сумму данных чисел.
| Ввод | Вывод |
|---|---|
| 0 0 |
0 |
| 99999 1 |
100000 |
Время: 2 сек.
Память: 256 Мб
| исходные данные | результат |
|---|---|
3 2 1 1 1 2 1 2 2 2 1 4 4 2 3 4 |
2 |
Время: 1 сек.
Память: 64 Мб
Когда человек не хочет что-то делать, у него найдётся 1000000 причин это не делать. Вот и сейчас, когда Сева с Женей зовут Кирилла гулять в парк, у него моментально появилась куча дел. Однако, после многочасовых переговоров (за время которых, к слову, можно было успеть прогуляться) Кирилл согласился, но с некоторыми оговорками. Во-первых, врач наказывал ему не подниматься слишком высоко над уровнем моря (что это за врач, и с чем связан такой совет, никто не знает). Во-вторых, он был согласен гулять только по квадратам (так как у них аура лучше, чем у любой другой фигуры). Женя и Сева растерялись и даже испугались, что не найдут подходящего для прогулки места, поэтому обратились к вам, чтобы узнать, сколько таких областей существует.
Опишем требования Кирилла более формально:
В первой строке вводятся 3 целых числа через пробел n, m — размеры парка, S — ограничение на подквадраты (1 ≤ n, m ≤ 30, 1 ≤ S ≤ 109). В каждой из следующих n строк вводятся m чисел через пробел Ai,j (0 ≤ Ai, j ≤ 107).
В единственной строке выведите количество участков парка, по которым согласится гулять Кирилл.
| Ввод | Вывод |
|---|---|
| 2 3 4 1 2 3 4 5 6 |
3 |
| 2 3 11 1 2 3 4 5 6 |
6 |
Время: 1 сек.
Память: 256Mb
В Байтландии за всю её историю было выпущено 15000 различных почтовых марок. Известный коллекционер почтовых марок планирует собрать полную коллекцию марок Байтландии. Какое-то количество марок (возможно, с дубликатами) у него есть на данным момент). По заданному списку марок, имеющихся в наличии, вычислить, какое минимальное количество марок коллекционер должен докупить, чтобы коллекция стала полной.
Входной файл состоит из двух строк. В первой строке задано одно целое число n (1 ≤ n ≤ 3 000 000) — количество имеющихся на данный момент у коллекционера экземпляров байтландских марок. Во второй строке заданы n целых чисел, каждое из которых лежит в интервале [1, 15000] — номер марки, представленной соответствующим экземпляром.
Одно число — минимальное количество марок, которое коллекционер должен докупить, чтобы коллекция стала полной.
| Ввод | Вывод |
|---|---|
| 8 3 6 2 2 4 6 3 7 |
14995 |
Время: 1 сек.
Память: 64 Мб
Как известно, студенты делятся на 2 типа: студенты 1-го типа носят канцелярские принадлежности на пары, а студенты 2-го типа одалживают их у первого. В свою очередь студенты 2-го типа делятся на ещё на 2 подтипа: те, кто возвращает ручку хозяину, и те, кто забывают её вернуть.
К сожалению, с течением времени студенты не меняются, как и учебное расписание. Таким образом, про каждый день недели можно с уверенностью сказать, кто, у кого и на каких парах будет просить ручки.
Лера относится к студентам 1-го типа. Ей бы очень хотелось, чтобы в конце учебного дня ручек у нее осталось как можно больше. Завтра понедельник, у неё n пар, Лера возьмёт с собой k ручек. Перед парой i к Лере подойдёт ai + bi студентов 2-го типа, ai из которых вернут ручку сразу после пары, а bi забудут.
Каждому студенту девушка будет помогать одним из двух способов: либо даст ручку от себя, либо попросит забрать её у какого-нибудь студента, одолжившего ручку ранее, но не вернувшего её.
Лера очень добрая, она хочет помочь абсолютно всем, поэтому гарантируется, что всегда существует стратегия, позволяющая дать ручки всем студентам. Также гарантируется, что никакой студент не будет просить у Леры ручку более одного раза в день.
Помогите Лере узнать, сколько максимум ручек будут у неё в конце учебного дня при оптимальной стратегии.
В первой строке вводятся 2 целых числа через пробел: n (1 ≤ n ≤ 100) и k (1 ≤ k ≤ 1000). В каждой из следующих n строк через пробел вводятся по 2 целых числа ai и bi (0 ≤ ai, bi ≤ k, ai + bi ≤ k).
В единственной строке выведите максимальное количество ручек, которое может остаться у Леры в конце учебного дня.
| Ввод | Вывод |
|---|---|
| 2 4 1 2 1 1 |
3 |
Пояснение к примеру:
Перед первой парой к Лере подойдёт 3 студента. Обозначим их номерами 1, 2, 3 (из них 2, 3 забудут вернуть ручку). Перед 2-й парой Лере вернётся ручка от 1-го студента, и подойдут студенты 4, 5 (5 забудет вернуть ручку). Она может отправить 4-го студента ко 2-му, а 5-го к 3-му. Таким образом на 2-й паре ручки будут у студентов с номерами 4, 5 (А у студентов 2, 3 их больше не будет). После 2-й пары 4-й студент вернёт ручку, а 5-й нет. Тогда в конце дня у Леры будут все ручки, кроме той, что осталась у 5-го студента.
================================================ FILE: _other_tasks_/d_reliable_tag/README.md ================================================Время: 2 сек.
Память: 256 Мб
Для подсчета количества запусков программы в офлайн-режиме сделали счетчик:
Зная начальное состояние счетчика и количество операций изменения счетчика r, найдите итоговую последовательность, задающую состояние счетчика.
Гарантируется, что во всех тестах значения элементов последовательности не выходят за пределы диапазона [−1012..1012].
В первой строке записаны три целых числа n, k, r (1 ≤ n, k, r ≤ 200000, k ≤ n) — длина последовательности элементов счетчика, количество участвующих в изменении счетчика элементов последовательности, количество операций изменения счетчика. Во второй строке записаны n целых чисел ai (−1000000 ≤ ai ≤ 1000000) — начальные элементы последовательности, задающей состояние счетчика. Последовательность отсортирована в порядке неубывания элементов.
Выведите n чисел — элементы последовательности, задающей состояние счетчика, после r изменений. Выводите числа, разделяя их пробелами, в неубывающем порядке.
| Ввод | Вывод |
|---|---|
| 2 2 5 1 1 |
8 13 |
| 5 3 4 0 0 0 1 2 |
0 0 0 1 2 |
| 10 3 100 1 2 3 4 5 6 7 8 9 10 |
604466 686144 781715 890453 1010587 1140842 1282129 1438574 1617218 1826247 |
Время: 1 сек.
Память: 64 Мб
На острове живут n человек. Каждый из них либо рыцарь, либо лжец. Все рыцари всегда говорят правду, все лжецы всегда лгут. Каждый человек сделал по одному утверждению. i-тый островитянин (1 ≤ i ≤ n) сказал: "Среди всех людей на острове не более ki рыцарей".
По заданным утверждениям островитян найдите любое возможное количество рыцарей на острове или определите, что такая ситуация невозможна.
Первая строка входных данных содержит одно целое число n (1 ≤ i ≤ 1000) — количество жителей острова.
Во второй строке задаются n целых чисел ki (1 ≤ ki ≤ n), разделенных пробелом.
Если описанная ситуация невозможна, то выведите −1. Иначе выведите одно целое число — количество рыцарей, живущих на острове. Если есть несколько возможных ответов, разрешается вывести любой из них.
| Ввод | Вывод |
|---|---|
| 2 2 2 |
2 |
| 4 0 1 2 3 |
2 |
Время: 2 сек.
Память: 64Mb
Во время торнадо в Костромской области было повалено большое количество деревьев. Однажды утром, спустя пару дней после торнадо, мальчик Илья вышел прогуляться и увидел, что поваленные деревья образовали настоящий лабиринт. Вася очень обрадовался, стал гулять и играть в лабиринте. Внезапно ему позвонил преподаватель и поинтересовался, почему он давно не видел Илью. Чтобы не получить дырку в бэйджик за самовольный выход за территорию лагеря, Илья, конечно же, хотел попасть в домик как можно скорее, но и побродить по лабиринту ему тоже очень хотелось. Помогите ему узнать, как быстро он сможет добраться до домика.
В первой строке входного файла заданы целые положительные числа N и M (1 ≤ N, M ≤ 1000). В следующих N строках заданы по M символов, описывающих лабиринт. На позициях, по которым Илья может перемещаться, записан символ «0», а на позициях, которые перегорожены деревьями, записан символ «1». После описания лабиринта следуют целые числа x1, y1, x2, y2 — координаты (то есть соответствующие номера столбцов и строк) Ильи и его домика соответственно (1 ≤ x1, x2 ≤ M, 1 ≤ y1, y2 ≤ N).
В выходной файл выведите единственное число — длину кратчайшего пути от точки (x1, y1) до точки (x2, y2), если Илья может добраться до дому по лабиринту, и «-1» в противном случае.
| Ввод | Вывод |
|---|---|
| 4 6 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 2 1 5 3 |
7 |
| 4 6 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 2 1 5 3 |
-1 |
Время: 1 сек.
Память: 256 Мб
Рассмотрим числа от L до R. Требуется отсортировать их по возрастанию количества целых положительных делителей. При равном количестве делителей числа должны быть отсортированы по возрастанию.
На ввод подаётся два числа L и R (1 ≤ L ≤ R ≤ 300 000).
Выведите числа от L до R в описанном в условии порядке.
| Ввод | Вывод |
|---|---|
| 10 20 | 11 13 17 19 10 14 15 16 12 18 20 |
Время: 1 сек.
Память: 64 Мб
Даны m заказов на доставку. Каждый заказа описывается двумя моментами времени: start и finish (в формате HH:MM:SS). Как только курьер начинает выполнение заказа, курьер не может выполнять никакой другой заказ в интервале между start и finish. Определите минимальное количество курьеров, которые потребуются для выполнения всех m заказов.
Первая строка содержит целое число m (1 <= m <= 1000). В каждой из следующих m строк содержится по два момента времени starti и finishi в формате HH:MM:SS (00 <= HH < 24, 00 <= MM < 60, 00 <= SS < 60).
Выведите одно целое число, минимальное количество курьеров.
| Ввод | Вывод |
|---|---|
| 4 08:00:00 11:00:00 09:00:00 10:00:00 10:00:00 11:10:00 10:59:59 13:00:00 |
3 |
| 1 08:00:00 09:00:00 |
1 |
| 4 08:00:00 13:00:00 09:00:00 13:00:00 10:00:00 13:00:00 10:59:59 13:00:00 |
4 |
| 10 08:00:00 11:00:00 08:00:00 11:00:00 08:00:00 11:00:00 08:00:00 11:00:00 08:00:00 11:00:00 12:00:00 12:00:01 12:00:00 23:59:59 12:00:00 13:00:01 13:00:00 13:00:01 13:00:00 13:00:01 |
5 |
Время: 1 сек.
Память: 256Mb
Заданы два целых положительных числа a и b. Найти их наибольший общий делитель.
В первой строке входа задано число a, во второй - число b (1 ≤ a,b ≤ 109).
Одно число — наибольший общий делитель введённых чисел.
| Ввод | Вывод |
|---|---|
| 26 44 |
2 |
Время: 1 сек.
Память: 512 Мб
Перед вами журнал результативных бросков в баскетбольном матче. Ваша задача — определить итоговый результат матча.
Правила начисления очков в баскетболе таковы:
Если расстояние до корзины во время броска было не более 6 метров, то дистанция считается близкой, в противном случае — дальней. Конечно, это несколько упрощённые правила игры в баскетбол.
В первой строке записано целое число n — количество заброшенных мячей (1 <= n <= 1000). В следующих n строках содержатся сведения о заброшенных мячах. Каждая строка содержит два целых числа ti и di (1 <= ti <= 2, -1 <= di <= 20). Если di >= 0, то это означает, что игрок из команды ti забросил мяч с расстояния di метров до корзины. Если di = -1, то это означает, что игрок из команды ti забросил мяч со штрафного броска.
Выведите результат матча — количества очков, набранных первой и второй командой, записанные через двоеточие.
| Ввод | Вывод |
|---|---|
| 3 1 2 2 5 1 10 |
5:2 |
| 4 1 2 1 -1 1 20 1 20 |
9:0 |
| 10 1 -1 1 -1 2 -1 2 -1 1 1 1 5 2 6 2 7 1 11 1 12 |
12:7 |
Время: 6 сек.
Память: 512 Мб
В свой первый рабочий день стажер Слава решил как следует изучить офис. Бродя по коридорам, Слава начал смотреть на английские названия переговорок. Вскоре он заметил, что названия переговорок имеют некий дисбаланс в буквосочетаниях - неужели в Яндексе изобрели какой-то свой диалект английского языка? Славу очень заинтересовала эта тема, поэтому он решил построить модель буквосочетаний и изучить его.
Первым делом данную модель необходимо построить. Слава выбрал формат графа:
Таким образом получается граф G с v вершинами и e ориентированными ребрами. Между некоторыми вершинами может быть несколько дуг (от a к b и от b к a).
Помогите Славе по заданному набору названий переговорок найти количество вершин в получившемся графе и вывести ориентированные ребра между вершинами.
В первой строке записано одно целое число T (1 ≤ T ≤ 40000) — количество переговорок, которые встретил Слава по пути к рабочему месту.
В каждой из T следующих строк записано одно название переговорки Si (4 ≤ |Si| ≤ 30). Все названия состоят из строчных букв английского алфавита.
В первой строке выведите количество вершин v в графе G.
Во второй строке выведите количество пар вершин e, между которыми есть ориентированные ребра.
В каждой из следующих e строк выведите слово ws, соответствующее началу ребра, затем слово wf, соответствующее концу ребра, и вес ориентированного ребра из вершины ws в wf.
Ребра вы можете перечислить в произвольном порядке.
| Ввод | Вывод |
|---|---|
| 2 aaaaaaaaaaaaa aaabbbaaabbba |
6 7 aaa aaa 10 aaa aab 2 aab abb 2 abb bbb 2 bbb bba 2 bba baa 1 baa aaa 1 |
| 2 abab baba |
2 2 aba bab 1 bab aba 1 |
| 1 qwertyqwertyqwertyqwertyqwerty |
6 6 qwe wer 5 wer ert 5 ert rty 5 rty tyq 4 tyq yqw 4 yqw qwe 4 |
Время: 1 сек.
Память: 256Mb
В данной задаче Вам необходимо найти для натурального числа a такое натуральное число x, не большее 109+9, что a*x - 1 делится на 109 + 9.
В первой строке записано число T, 1 ≤ T ≤ 105 - количество тестовых примеров. В каждой из следующих T строк записано натуральное число a, 1 ≤ a < 109 + 9.
Для каждого числа a выведите в отдельной строке одно число - ответ на задачу. Ответ не должен превышать 109+9.
| Ввод | Вывод |
|---|---|
| 4 1 2 1000000007 1000000008 |
1 500000005 500000004 1000000008 |
Время: 1 сек.
Память: 512 Мб
Петя придумал странный протокол передачи данных. Суть его в том, что, передавая верное сообщение S , в поток данных ещё добавляются миллионы байт лишней информации. Предполагается, что злоумышленник голову сломает, пока найдёт нужную часть сообщения. Инновационно? Конечно!
Для передачи секретного сообщения используется ключ — строка из цифр ABC, где - A, B, C - некоторые целые положительные числа, удовлетворяющие соотношению A + B = C.
Вася выделил часть переданного сообщения. Подтвердите, что его можно разбить на три части, чтобы получилось верное математическое равенство со сложением.
Более формально, дано сообщение вида ABC, которое может быть представлено в виде математического тождества вида A + B = C, где A, B, C - некоторые целые положительные числа. Найдите это тождество.
В единственной строке записано сообщение вида ABC, состоящее из цифр от 0 до 9. Длина строки не менее трёх символов и не превосходит ста символов.
Выведите сообщение вида A + B = C. Таким образом, ответ должен отличаться от входной строки ровно на два вставленных символа — на один символ + и один символ =. Ведущие нули в десятичной записи чисел A, B и C не допускаются. Если существует несколько решений, выведите любое из них. Гарантируется, что по крайней мере одно решение существует.
| Ввод | Вывод |
|---|---|
| 123123246 | 123+123=246 |
| 999108 | 9+99=108 |
| 11111122 | 11+111=122 |
Время: 2 сек.
Память: 256 Мб
Max. В противном случае выведите Мel.Draw.| исходные данные | результат |
|---|---|
15 1 3 1 3 3 |
Max |
20 3 0 0 0 1 |
Draw |
1 2 3 3 2 1 |
Max |
Время: 1 сек.
Память: 64Mb
Найдите все простые в диапазоне [A..B].
Даны 1 ≤ A ≤ B ≤ 1012. Дополнительно известно ∣B − A∣ ≤ 106.
В строку все простые числа из диапазона в порядке возрастания.
| Ввод | Вывод |
|---|---|
| 60 80 | 61 67 71 73 79 |
Время: 1 сек.
Память: 512 Мб
В начале эксперимента по изучению деления бактерий в чашке Петри была одна бактерия. К концу каждого дня количество бактерий увеличивалось в N раз (то есть к концу первого дня, например, там было N бактерий). В конце N-го дня биологи разделили получившиеся бактерии на колонии по M бактерий и забрали в другие лаборатории. Сколько бактерий осталось после этого в чашке Петри?
Входной файл содержит через пробел числа N и M (1 ≤ M, N ≤ 109).
Выведите одно число — ответ к задаче.
| Ввод | Вывод |
|---|---|
| 3 1001 | 27 |
| 10 123456 | 64000 |
Время: 1 сек.
Память: 64Mb
Дан неориентированный невзвешенный граф. В графе возможны петли и кратные рёбра. Постройте такой новый граф без петель и кратных рёбер, что для любых двух вершин в нём расстояние равно расстоянию в исходном графе. Если вершины не связны, расстояние между ними бесконечность.
На первой строке число вершин n и число рёбер m (1 ≤ n, m ≤ 100 000). Следующие m строк содержат пары чисел от 1 до n – рёбра графа.
Новый граф в таком же формате. Рёбра можно выводить в произвольном формате.
| Ввод | Вывод |
|---|---|
| 3 5 1 1 1 3 2 1 1 2 2 3 |
3 3 1 2 1 3 2 3 |
Время: 1 сек.
Память: 1Gb
| Ограничение времени | 1 секунда |
| Ограничение памяти | 1Gb |
| Ввод | стандартный ввод или input.txt |
| Вывод | стандартный вывод или output.txt |
Полное решение будет оценено в 2 балла.
Сравните два числа в двоичной системе счисления. Числа представлены последовательностью слов без пробелов, обозначающих цифры (0 — zero, 1 — one).
Первая строка содержит запись первого числаs1 (3≤|s1|≤1000).
Вторая строка содержит запись второго числа s23≤|s2|≤1000).
Числа не содержат лидирующих нулей.
| Ввод | Вывод |
|---|---|
oneone onezerozero |
< |
| Ввод | Вывод |
|---|---|
zero zero |
= |
| Ввод | Вывод |
|---|---|
onezero oneone |
< |
| Ввод | Вывод |
|---|---|
oneonezerozero onezeroonezero |
> |
| Ввод | Вывод |
|---|---|
one zero |
> |
| Ввод | Вывод |
|---|---|
one one |
= |
Время: 1 сек.
Память: 512 Мб
Числовой палиндром — целое положительное число, десятичная запись которого одинаково читается в обоих направлениях. Например, 9 и 12321 являются числовыми палиндромами, а 3434 и 1211 — нет.
На вход программы поступает набор цифр от 1 до 9. Разрешается переставлять и удалять цифры. Требуется из данных цифр составить числовой палиндром, задающий наибольшее число.
В первой строке входных данных содержится целое число N (0 < N ≤ 105). Во второй строке задается последовательность из N цифр от 1 до 9.
Выведите одно целое число — максимальный числовой палиндром, составляемый из данного набора цифр.
| Ввод | Вывод |
|---|---|
| 4 1123 |
131 |
Время: 2 сек.
Память: 256 Мб
| исходные данные | результат |
|---|---|
2 1 2 |
-1 -1 |
3 1 2 3 |
1 3 |
4 2 1 4 6 |
-1 -1 |
Время: 1 сек.
Память: 64Mb
Возводить в степень можно гораздо быстрее, чем за n умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
an=(a2)n/2 при четном n,
an=a*an−1 при нечетном n.
Реализуйте алгоритм быстрого возведения в степень. Если вы все сделаете правильно, то сложность вашего алгоритма будет O(logn).
Вводится действительное число a и целое число n.
Выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 2 1 |
2 |
| 2 2 |
4 |
| 2 3 |
8 |
(!!!) Нельзя использовать стандартное возведение в степень. (!!!)
================================================ FILE: _other_tasks_/rapid_exponentiation/RapidExponentiation.java ================================================ package _other_tasks_.rapid_exponentiation; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.PrintWriter; import java.util.Scanner; public class RapidExponentiation { public static double multi(double x, long n) { if (n == 0) { return 1; } if (n % 2 == 0) { return multi(x * x, n / 2); } else { return x * multi(x, n - 1); } } public static void main(String[] args) throws FileNotFoundException { Scanner sc = new Scanner(new FileReader("input.txt")); PrintWriter out = new PrintWriter(System.out); double a = Double.parseDouble(sc.nextLine()); long n = Long.parseLong(sc.nextLine()); double res = multi(a, n); out.println(res); out.flush(); } } ================================================ FILE: _other_tasks_/search/README.md ================================================Время: 2 сек.
Память: 256 Мб
| исходные данные | результат |
|---|---|
5 3 2 3 5 3 1 3 4 4 1 2 4 5 3 2 3 5 3 1 3 4 |
0 |
Время: 1 сек.
Память: 512 Мб
Аналого-цифровой преобразователь получает сигналы и кодирует их в виде целых положительных чисел, после чего последовательно передаёт в систему для обработки. Конец блока сигналов кодируется числом 0. Ваша задача — определить значение второго по величине элемента в первом блоке сигналов.
На вход подаётся последовательность сигналов — целые неотрицательные числа, не превосходящие 109. Гарантируется, что в последовательности есть хотя бы одно число 0, а общее количество сигналов не превосходит 104.
Выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 1 7 9 0 |
7 |
Время: 2 сек.
Память: 256 Мб
| исходные данные | результат |
|---|---|
3 1 2 3 |
1 |
3 2 3 2 |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 2%
Требуется сложить два целых числа А и В.
В единственной строке входного файла input.txt записаны два натуральных числа через пробел. Значения чисел не превышают 109.
В единственную строку выходного файла output.txt нужно вывести одно целое число — сумму чисел А и В.
| Ввод | Вывод |
|---|---|
| 2 3 | 5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Главный вождь племени Абба не умеет считать. В обмен на одну из его земель вождь другого племени предложил ему выбрать одну из трех куч с золотыми монетами. Но вождю племени Абба хочется получить наибольшее количество золотых монет. Помогите вождю сделать правильный выбор!
В первой строке входного файла input.txt записаны три натуральных числа через пробел. Каждое из чисел не превышает 10100. Числа записаны без ведущих нулей.
В выходной файл output.txt нужно вывести одно целое число — максимальное количество монет, которые может взять вождь.
| Ввод | Вывод |
|---|---|
| 5 7 3 | 7 |
| 987531 234 86364 | 987531 |
| 189285 283 4958439238923098349024 | 4958439238923098349024 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
Некоторые из вас, наверно, знают, что ежегодно проводится чемпионат мира по программированию среди студентов (http://acm.baylor.edu). В финал этого соревнования проходят около 80 команд со всего мира.
Каждая команда состоит из трех человек и имеет название. Напишите программу, которая по краткому названию команды и фамилиям ее участников, строит полное название команды.
Полное название команды состоит из краткого названия команды и списка фамилий ее участников. Фамилии участников в списке должны быть упорядочены по алфавиту и отделены друг от друга запятыми. Название команды от фамилий участников должно быть отделено двоеточием. После каждого знака препинания должен стоять ровно один пробел.
Входной файл input.txt содержит ровно 4 строки. Первая из строк содержит название команды. Каждая из следующих трех строк содержит фамилию одного из членов команды. Длины строк от 1 до 50 символов.
Выходной файл output.txt должен содержать ровно одну строку, содержащую полное название команды.
| Ввод | Вывод |
|---|---|
| Dream Team Knuth Dijkstra Cormen |
Dream Team: Cormen, Dijkstra, Knuth |
| Ivanovs Team Ivanov Ivanov Ivanov |
Ivanovs Team: Ivanov, Ivanov, Ivanov |
| Team a aa aaa |
Team: a, aa, aaa |
| Team a A B |
Team: A, B, a |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Клетки шахматной доски пронумерованы числами от 1 до 64 по строкам слева направо и снизу вверх. Напишите программу, которая по заданному номеру клетки определяет номера всех клеток, имеющих с ней общую сторону.
Входной файл input.txt содержит одно целое число от 1 до 64.
В выходной файл output.txt выведите через пробел в порядке возрастания номера всех клеток, имеющих с заданной общую сторону.
| Ввод | Вывод |
|---|---|
| 2 | 1 3 10 |
| 64 | 56 63 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Уравнение для пятиклассников представляет собой строку длиной 5 символов. Второй символ строки является либо знаком '+' (плюс) либо '-' (минус), четвёртый символ — знак '=' (равно). Из первого, третьего и пятого символов ровно два являются цифрами из диапазона от 0 до 9, и один — буквой x, обозначающей неизвестное.
Требуется написать программу, которая позволит решить данное уравнение относительно x.
Входной файл input.txt состоит из одной строки, в которой записано уравнение.
В выходной файл output.txt выведите целое число — значение x.
| Ввод | Вывод |
|---|---|
| x+5=7 | 2 |
| 3-x=9 | -6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
Известный исследователь Чарльз Ф. Мантц, устав от долгого путешествия через джунгли, лег спать в 10 часов вечера, но предварительно он завел будильник на 12 часов следующего дня. Но проспать 14 часов ему не удалось – будильник зазвонил через 2 часа. Исследователь забыл, что на будильнике, имеющем 12-тичасовой циферблат, можно задать время до звонка только менее 12 часов.
Напишите программу, которая определяет, сколько часов успеет проспать исследователь, прежде чем будильник его разбудит.
В единственной строке входного файла input.txt записаны два целых числа S и T (1 ≤ S, T ≤ 12; S ≠ T), разделенные одним пробелом - час, когда исследователь лег спать, и час, на который он установил будильник.
В единственную строку выходного файла output.txt нужно вывести одно целое число – через сколько часов зазвонит будильник.
| Ввод | Вывод |
|---|---|
| 10 12 | 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Каждому школьнику из курса органической химии известна формула молекулы этилового спирта – C2H5(OH). Откуда видно, что молекула спирта состоит из двух атомов углерода (C), шести атомов водорода (H) и одного атома кислорода (O).
По заданному количеству атомов каждого из описанных выше элементов требуется определить максимально возможное количество молекул спирта, которые могут образоваться в процессе их соединения.
Первая строка входного файла input.txt содержит 3 натуральных числа: C, Н и O – количество атомов углерода, водорода и кислорода соответственно. Все числа разделены пробелом и не превосходят 1018.
В выходной файл output.txt выведите максимально возможное число молекул спирта, которые могут получиться из атомов, представленных во входных данных.
| Ввод | Вывод |
|---|---|
| 2 6 1 | 1 |
| 10 5 12 | 0 |
| 18 35 3 | 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Али-Баба стоял у входа в пещеру. «Сим-Сим, открой дверь!» – сказал он. И дверь распахнулась. Али-Баба зашел внутрь и обомлел – пещера была усыпана сокровищами. Золото, драгоценности, дорогое оружие и посуда, пещера буквально сверкала!
Но Али-Баба радовался недолго. Поразмыслив, он понял, что может унести с собой не более M предметов, в то время как в пещере находится целых N предметов. Али-Баба внимательно рассмотрел каждый предмет и оценил его стоимость. К своему удивлению Али-Баба обнаружил в пещере также бесполезные, и даже вредные вещи, ценность которых сомнительна. Естественно, что Али-Баба хочет взять с собой такие предметы, чтобы их суммарная ценность была максимальна. Помогите ему найти эту сумму.
В первой строке входного файла input.txt находятся два числа, разделенные пробелом: N – количество предметов в пещере (1 ≤ N ≤ 1000), M – максимальное количество предметов, которые Али-Баба может унести с собой (0 ≤ M ≤ N). Во второй строке располагаются N целых чисел, разделенных пробелами. Каждое такое число Ci означает стоимость i-го сокровища (1 ≤ i ≤ N, -1000 ≤ Ci ≤ 1000).
В выходной файл output.txt выведите единственное целое число – максимальную суммарную стоимость сокровищ, которые Али-Баба может унести из пещеры.
| Ввод | Вывод |
|---|---|
| 4 2 2 3 1 4 |
7 |
| 4 2 0 3 -1 -2 |
3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Недавно на поле фермера Джона были обнаружены следы приземления летающих тарелок. Об этом даже писала газета Mew Yorc Courier.
Поле фермера Джона имеет форму круга радиусом r1. По сообщениям журналистов были обнаружены два следа от летающих тарелок, имевшие форму кругов. Один из них имел радиус r2, второй - радиус r3. Также сообщается, что они находились внутри поля фермера Джона и не пересекались, ни один из них не лежал внутри другого. При этом, они, возможно, касались друг друга и/или границы поля.
Поскольку журналисты часто склонны преувеличивать масштабы событий, необходимо написать программу, которая будет проверять, могли ли иметь место события, описанные в газете.
Входной файл input.txt содержит три целых положительных числа - r1, r2, r3 (1 ≤ r1, r2, r3 ≤ 109).
В выходной файл output.txt выведите слово YES, если информация, опубликованная в газете, может соответствовать правде, и слово NO - иначе.
| Ввод | Вывод |
|---|---|
| 10 10 10 | NO |
| 10 3 4 | YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Воспитательница Галя работает в детском саду. Кроме детских игр в этом детском саду проходят занятия. Вот уже неделю ребята изучают буквы английского алфавита. Каждое утро воспитательница выстраивает всех своих подопечных в ряд и они играют в игру.
Первый ребенок в ряду громко называет первую букву алфавита – A. Второй должен назвать B, третий – C и так далее. По счастливому стечению обстоятельств всего в группе 26 детей и столько же сколько и букв в английском алфавите.
Если каждый ребенок без ошибки назовет свою букву, то группа отпразднует знание английского алфавита и ребята по этому случаю съедят большой торт. Однако, пока что группе не удается правильно назвать все 26 букв и каждое утро то один, то другой называет свою букву неправильно и игра на этом заканчивается.
Ребята учат буквы подряд и каждый из них знает первые несколько букв алфавита и не может назвать остальные. Поэтому возможность выиграть напрямую зависит от их расстановки. К примеру, если последним в ряду окажется ребенок, знающий английский алфавит только до буквы D, то букву Z он назвать не сможет и группа не выиграет независимо от того, насколько хорошо выучили алфавит остальные ребята.
Галя считает, что группа в целом уже достаточно хорошо знает алфавит и хочет помочь своим ребятам выиграть. Для этого ей нужно всего лишь расставить их так, чтобы первый ребенок в ряду знал алфавит хотя бы до буквы A, второй хотя бы до буквы B и так далее, последний в ряду должен знать все буквы.
Помогите Гале решить: в каком порядке расставить ребят, чтобы они смогли выиграть или выясните, что это пока невозможно.
Входной файл input.txt содержит строку, состоящую из 26 букв английского алфавита, записанных слитно; i-я из этих букв говорит о том, до какой буквы знает алфавит i-й ребенок.
В первой строке выходного файла output.txt выведите YES, если воспитательнице удастся выстроить своих детей в ряд так, чтобы они выиграли и NO, если им для этого еще надо поучиться. Если расстановка возможна, во второй строке выведите перестановку из 26 чисел от 1 до 26 через пробел – порядок детей в ряду. Если решений несколько, можно вывести любое.
| Ввод | Вывод |
|---|---|
| ABCDEFGHIJKLMNOPQRSTUVWXYZ | YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
| BCARTYXYZZYZZYXYXYZZYZZYXV | YES 3 1 2 4 5 26 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 24 23 |
| AAZZZZZZZZZZZZZZZZZZZZZZZZ | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Задано натуральное число x. Найдите число способов представить его в виде суммы четырех натуральных чисел: x = a + b + c + d, где a ≤ b ≤ c ≤ d.
Входной файл input.txt содержит целое число x (1 ≤ x ≤ 1500).
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 3 | 0 |
| 5 | 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Катя и Таня играли в слова. Одна из девочек называла слово на английском языке, вторая должна найти анаграмму. Анаграмма – это слово, полученное из другого слова путем перестановки всех без исключения букв первого слова.
Написать программу, которая проверит, правильно ли девочки создают анаграммы.
Входной файл input.txt содержит два слова на английском языке в нижнем регистре, разделенные пробелом. Каждое слово содержит от 1 до 20 символов.
В выходной файл output.txt выведите «YES», если анаграмма подобрана правильно, иначе выведите «NO».
| Ввод | Вывод |
|---|---|
| post stop | YES |
| post pots | NO |
| aabb aabb | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Cтрока S1 называется анаграммой строки S2, если она получается из S2 перестановкой символов. Даны строки S1 и S2. Напишите программу, которая проверяет, является ли S1 анаграммой S2.
Первая строка входного файла input.txt содержит строку S1, вторая - S2. Обе строки состоят только из прописных букв английского алфавита. Строки не пусты и имеют длину не больше 100000 символов.
В выходной файл output.txt выведите YES, если S1 является анаграммой S2, и NO - в противном случае.
| Ввод | Вывод |
|---|---|
| ABAA ABBA |
NO |
| ABBA BABA |
YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Палиндромом называют строку, читающуюся одинаково с обеих сторон. Задана строка s. Найдите ее наибольшую по длине подстроку, не являющуюся палиндромом.
Входной файл input.txt содержит строку s. Она состоит только из строчных букв английского алфавита, не пуста, а ее длина не превышает 100 000 символов.
В выходной файл output.txt выведите ответ на задачу. Если все подстроки s являются палиндромами, выведите в выходной файл NO SOLUTION.
| Ввод | Вывод |
|---|---|
| abba | abb |
| abc | abc |
| aaaaa | NO SOLUTION |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
По целочисленным координатам вершин треугольника (x1,y1), (x2,y2) и (x3,y3) требуется вычислить его площадь.
Входной файл input.txt содержит 6 целых чисел x1,y1,x2,y2,x3,y3 – координаты вершин треугольника. Все числа не превышают 106 по абсолютной величине.
В выходной файл output.txt выведите точное значение площади заданного треугольника.
| Ввод | Вывод |
|---|---|
| 2 1 2 4 6 1 | 6 |
| 0 0 0 3 3 0 | 4.5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 5%
В прошлом году Вася пошел в школу и научился считать. В этом году он изучил таблицу умножения и теперь умеет перемножать любые числа от 1 до 10 без ошибок. Друг Петя рассказал ему про системы счисления, отличные от десятичной. В частности, про двоичную, восьмеричную и даже шестнадцатеричную. Теперь Вася без труда (но уже с помощью листка и ручки) может перемножать числа от 1 до 10 и в этих системах, используя перевод из нестандартной системы в десятичную и обратно из десятичной. Например, если Васе нужно перемножить числа 101 и 1001 в двоичной системе, то он сначала эти числа переводит в десятичное представление следующим образом:
(101)2=1*22+0*21+1*20=4+0+1=5
(1001)2=1*23+0*22+0*21+1*20=8+0+0+1=9
После чего перемножение чисел 5 и 9 Вася с легкостью производит в десятичной системе счисления в уме и получает число 45. Далее производится перевод из десятичной системы счисления в двоичную. Для этого Вася делит число 45 на 2 (порядок системы счисления), запоминая остатки от деления, до тех пор пока в результате не останется число 0.
Ответ составляется из полученных остатков от деления путем их записи в обратном порядке. Таким образом Вася получает результат: (101)2 * (1001)2 = (101101)2. Но теперь Вася изучает таблицу умножения чисел от 1 до 100 в десятичной системе счисления, а поскольку запомнить такую таблицу очень сложно, то Васе придется очень долго ее зубрить. Составьте для Васи программу, которая поможет ему проверять свои знания.
Во входном файле input.txt записаны три натуральных числа A, B и C через пробел. Числа A и B ≤ 102, а C ≤ 106.
В выходной файл нужно вывести YES в том случае, если A*B=C и вывести NO в противном случае.
| Ввод | Вывод |
|---|---|
| 8 54 432 | YES |
| 8 54 432 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
Заданы первый и второй элементы арифметической прогрессии. Требуется написать программу, которая вычислит элемент прогрессии по ее номеру.
Входной файл input.txt содержит три целых числа, разделенных пробелами – первый элемент прогрессии A1 (1 ≤ A1 ≤ 1000), второй элемент прогрессии A2 (1 ≤ A2 ≤ 1000), и номер требуемого элемента N (1 ≤ N ≤ 1000).
Выходной файл output.txt должен содержать одно целое число - N-й элемент арифметической прогрессии.
| Ввод | Вывод |
|---|---|
| 1 5 3 | 9 |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Если Вы читали Гарри Поттера, то знаете, что повелитель зла, Лорд Волдеморт создал свое имя путем перестановки букв в своем настоящем имени. Так из имени «Tom Marvolo Riddle» он получил «I am Lord Voldemort».
Напишите программу, которая проверяет, можно ли получить из одного имени другое путем перестановки его букв. При этом регистром букв нужно пренебречь.
В первой строке входного файла input.txt записаны два слова, разделенные единственным в строке пробелом. Слова содержат только символы английского алфавита. Длина слов больше 0 и не превышает 50 символов.
В выходной файл output.txt выведите «Yes», если возможно получить из одного имени другое, и «No» в противном случае.
| Ввод | Вывод |
|---|---|
| TomMarvoloRiddle IamLordVoldemort | Yes |
| stop pots | Yes |
| abbc bac | No |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
Задано время отправления поезда и время в пути до конечной станции. Требуется написать программу, которая найдет время прибытия этого поезда (возможно, в другие сутки).
Входной файл input.txt содержит две строки. В первой строке задано время отправления, а во второй строке – время в пути. Время отправления задается в формате «HH:MM», где HH время в часах, которое принимает значение от 00 до 23, ММ – время в минутах, которое принимает значение от 00 до 59. Время в пути задается двумя неотрицательными целыми числами – количество часов и количество минут. Числа разделяются одним пробелом. Количество часов не превышает 120, минут – 59.
Выходной файл output.txt должен содержать одну строку – время прибытия поезда на конечную станцию. Формат вывода этого времени совпадает с форматом ввода времени отправления.
| Ввод | Вывод |
|---|---|
| 00:00 10 10 |
10:10 |
| 01:02 4 6 |
05:08 |
| 11:00 22 0 |
09:00 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
Задана последовательность, состоящая только из символов ‘>’, ‘<’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида ‘>>-->’ и ‘<--<<’.
В первой строке входного файла input.txt записана строка, состоящая из символов ‘>’, ‘<’ и ‘-‘ (без пробелов). Строка состоит не более, чем из 250 символов.
В единственную строку выходного файла output.txt нужно вывести искомое количество стрелок.
| Ввод | Вывод |
|---|---|
| <<<<>>--><--<<--<<>>>--><<<<< | 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Известный художник решил написать новый шедевр. После многих дней усердной работы он захотел исследовать свое творение. Художник вспомнил, что картина писалась следующим образом: сначала был взят белый холст, имеющий форму прямоугольника шириной w и высотой h. Затем художник нарисовал на этом холсте n прямоугольников со сторонами, параллельными сторонам холста и вершинами, расположенными в целочисленных координатах. Помогите художнику определить площадь незакрашенной части холста.
Первая строка входного файла input.txt содержит два натуральных числа w и h (1 ≤ w, h ≤ 100). Во второй строке записано целое число n (0 ≤ n ≤ 5000) – количество прямоугольников. Следующие n строк содержат информацию о всех прямоугольниках. Каждая строка описывает один прямоугольник в виде четырех чисел x1, y1, x2, y2 , где (x1, y1) и (x2, y2) – координаты левого верхнего и правого нижнего угла прямоугольника соответственно.
Выведите в выходной файл output.txt одно целое число – площадь незакрашенной части холста.
| Ввод | Вывод |
|---|---|
| 5 5 2 1 1 3 3 2 2 4 4 |
18 |
| 6 7 3 0 0 5 5 1 1 4 4 2 2 3 3 |
17 |
Время: 2 сек.
Память: 16 Мб
Сложность: 26%
Число называется автоморфным если оно совпадает с последними цифрами своего квадрата. Например, число 25 автоморфно, так как 252=625. Напишите программу определения всех автомофных чисел на заданном промежутке [a, b].
Входной файл input.txt содержит два натуральных числа a и b (a ≤ b ≤ 106).
В выходной файл output.txt выведите через пробел в порядке возрастания все автоморфные числа заданного промежутка.
| Ввод | Вывод |
|---|---|
| 1 10 | 1 5 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
В одном из государств все решения традиционно принимались простым большинством голосов на общем собрании граждан, которых, к счастью, было не очень много. Одна из местных партий, стремясь прийти к власти как можно более законным путем, смогла добиться некоторой реформы избирательной системы. Главным аргументом было то, что население острова в последнее время значительно возросло, и проведение общих собраний перестало быть легкой задачей.
Суть реформы состояла в следующем: с момента введения ее в действие все избиратели острова делились на K групп (необязательно равных по численности). Голосование по любому вопросу теперь следовало проводить отдельно в каждой группе, причем считалось, что группа высказывается "за", если "за" голосует более половины людей в этой группе, а в противном случае считалось, что группа высказывается "против". После проведения голосования в группах подсчитывалось количество групп, высказавшихся "за" и "против", и вопрос решался положительно в том и только том случае, когда групп, высказавшихся "за", оказывалось более половины общего количества групп.
Эта система вначале была с радостью принята жителями острова. Когда первые восторги рассеялись, очевидны стали, однако, некоторые недостатки новой системы. Оказалось, что сторонники партии, предложившей систему, смогли оказать некоторое влияние на формирование групп избирателей. Благодаря этому, они получили возможность проводить некоторые решения, не обладая при этом реальным большинством голосов.
Пусть, например, на острове были сформированы три группы избирателей, численностью в 5, 5 и 7 человек соответственно. Тогда партии достаточно иметь по три сторонника в каждой из первых двух групп, и она сможет провести решение всего 6-ю голосами "за", вместо 9-и, необходимых при общем голосовании.
Требуется написать программу, которая по заданному разбиению избирателей на группы определит минимальное количество сторонников партии, достаточное для принятия любого решения.
Входной файл input.txt состоит из двух строк. В первой строке записано натуральное число K < 1001 - количество групп избирателей. Во второй строке через пробел записаны K натуральных чисел, которые задают количество избирателей в группах. Население острова не превосходит 30000 человек.
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 3 5 5 7 |
6 |
| 5 4 2 1 3 7 |
5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Спецслужбы получили информацию о том, что в труднодоступной части Муравийской пустыни расположена хорошо замаскированная база террористов. В руки спецслужб попал и план этой базы, которая с большой высоты выглядит как группа скальных обломков, весьма часто встречающихся среди Муравийских песков. Президент отдал приказ уничтожить базу крылатыми ракетами. Ваша задача - по карте пустыни, полученной со спутника и плану базы определить количество возможных положений базы террористов. Помните, что террористы могли привезти на территорию базы камни!
В первой cтроке файла INPUT.TXT записаны числа Nb и Mb (1 ≤ Nb, Mb ≤ 20). В следующих Nb строках записан план базы. Каждая из этих строк содержит по Mb символов "#" (ASCII 35 ) или "." (ASCII 46). Символ "#" обозначает фрагмент базы, а символ "." - песок. В следующей строке записаны числа Nd и Md (1 ≤ Nd, Md ≤ 100). И остаток файла содержит карту участка пустыни на котором, предположительно, находится база террористов - Nd строк по Md символов "#" или "." в каждой.
Запишите в файл OUTPUT.TXT количество возможных положений базы террористов.
| Ввод | Вывод |
|---|---|
| 2 2 #. ## 3 5 #.#.# ##### .###. |
4 |
| 1 3 #.. 3 6 ##..## .#.#.# #.#... |
6 |
| 3 3 #.. #.# #.. 5 36 #......#........................#... #.#....#.#...#.........#............ #......#.#...##....#...##......###.. .......#.....#...#.#...##........#.# ...................#.....#.......#.. |
4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 5%
Известны результаты каждой из 4х четвертей баскетбольной встречи. Нужно определить победителя матча. Побеждает команда, набравшая больше очков в течение всего матча.
Входной файл input.txt содержит 4 строки, в каждой строке находится два целых числа a и b – итоговый счет в соответствующей четверти. а – количество набранных очков за четверть первой командой, b – количество очков, набранных за четверть второй командой. (0 ≤ a,b ≤ 100).
В выходной файл output.txt выведите номер выигравшей команды, в случае ничьей следует вывести «DRAW».
| Ввод | Вывод |
|---|---|
|
26 17 13 15 19 11 14 16 |
1 |
|
14 15 17 18 20 20 15 17 |
2 |
|
15 16 18 17 10 12 14 12 |
DRAW |
Время: 1 сек.
Память: 16 Мб
Сложность: 2%
В шкатулке хранится разноцветный бисер (или бусины). Все бусины имеют одинаковую форму, размер и вес. Бусины могут быть одного из N различных цветов. В шкатулке много бусин каждого цвета.
Требуется определить минимальное число бусин, которые можно не глядя вытащить из шкатулки так, чтобы среди них гарантированно были две бусины одного цвета.
Входной файл input.txt содержит одно натуральное число N - количество цветов бусин (1 ≤ N ≤ 109).
В выходной файл output.txt выведите ответ на поставленную задачу.
| Ввод | Вывод |
|---|---|
| 3 | 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Будем называть число красивым, если сумма его цифр в десятичной системе счисления делится на количество цифр в нем (в десятичной системе счисления).
Необходимо найти N-ое в порядке возрастания красивое число.
Входной файл input.txt содержит целое число N. (1 ≤ N ≤ 100 000)
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 1 | 15 |
| 15 | 20 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Однажды великий художник Гигабайт подарил королю Байтландии одно из своих лучших полотен. Король, впечатленный произведением Гигабайта, в знак благодарности подарил ему K плиток из очень ценной разновидности мрамора размером 10×10 сантиметров каждая.
Художник решил украсить этими плитками одну из стен своего дома. Он задумал выложить из них прямоугольник высотой H плиток и шириной W плиток. Художник понимает, что число вариантов для выбора H и W достаточно велико. Из всех возможных вариантов он хочет выбрать самый красивый. Ваша задача – помочь ему с выбором!
Для определения степени красоты художник решил учитывать два параметра:
Насколько выбранный прямоугольник будет близок к квадрату. Значение этого параметра равно модулю разности чисел H и W(т.е. |H-W|).
Сколько плиток останется невостребованными после украшения стены. Значение этого параметра равно разности чисел K и H×W(т.е. K-H×W, где K ≥ H×W ).
Степень красоты вычисляется как сумма значений двух описанных выше параметров. Например, имея 11 плиток, можно выбрать прямоугольник 3×3, степень красоты равна 0+2 = 2. Также можно выбрать прямоугольник 2×5, тогда степень красоты равна 3+1 = 4. Считается, что чем меньше степень красоты, тем красивее прямоугольник.
Ваша задача – написать программу, которая по заданному числу K находит размеры самого красивого прямоугольника.
Единственная строка входного файла input.txt содержит одно целое число K – количество подаренных королем плиток (1 ≤ K ≤ 106).
Единственная строка выходного файла output.txt должна содержать натуральные числа H и W соответственно, которые определяют размеры самого красивого прямоугольника. Числа должны быть разделены одиночным пробелом. Если решений несколько, выведите любое из них.
| Ввод | Вывод |
|---|---|
| 11 | 3 3 |
| 2 | 1 2 |
| 20 | 4 5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Требуется написать программу, которая в массиве из n целых чисел наименьший элемент поместит на первое место, наименьший из оставшихся – на последнее, следующий по величине – на второе место, следующий – на предпоследнее и так далее – до середины массива.
Во входном файле input.txt записано в первой строке число n (1 ≤ n ≤ 30000). Во второй строке записаны через пробел элементы массива, числа по абсолютной величине не большие 32767.
В единственную строку выходного файла output.txt нужно вывести элементы полученного массива, разделенные одним пробелом.
| Ввод | Вывод |
|---|---|
| 5 1 2 3 4 5 |
1 3 5 4 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Постулат Бертрана (теорема Бертрана-Чебышева, теорема Чебышева) гласит, что для любого n > 1 найдется простое число p в интервале n < p < 2n. Такая гипотеза была выдвинута в 1845 году французским математиком Джозефем Бертраном (проверившим ее до n=3000000) и доказана в 1850 году Пафнутием Чебышевым. Раманужан в 1920 году нашел более простое доказательство, а Эрдеш в 1932 – еще более простое.
Ваша задача состоит в том, чтобы решить несколько более общую задачу – а именно по числу n найти количество простых чисел p из интервала n < p < 2n.
Напомним, что число называется простым, если оно делится только само на себя и на единицу.
Входной файл input.txt содержит целое число n (2 ≤ n ≤ 50000).
В выходной файл output.txt выведите одно число – ответ на задачу.
| Ввод | Вывод |
|---|---|
| 2 | 1 |
| 239 | 39 |
| 3000 | 253 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Будем говорить, что число a лучше числа b, если сумма цифр a больше суммы цифр числа b, а в случае равенства сумм их цифр, если число a меньше числа b. Например, число 124 лучше числа 123, так как у первого из них сумма цифр равна семи, а у второго – шести. Также, число 3 лучше числа 111, так как у них равны суммы цифр, но первое из них меньше.
Дано число n. Найдите такой его делитель (само число n и единица считаются делителями числа n), который лучше любого другого делителя числа n.
Первая строка входного файла содержит целое число n (1 ≤ n ≤ 105).
В выходной файл выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 10 | 5 |
| 239 | 239 |
Время: 1 сек.
Память: 16 Мб
Сложность: 8%
Говорят, что плохой программист – это тот, кто считает, что в одном килобайте 1000 байт, а хороший программист – это тот, кто полагает, что в одном километре 1024 метра.
Многим эта шутка понятна, так как все знают, что в процессах, связанных с информатикой и компьютерной техникой, фигурирует множество значений, выражаемых степенью двойки, то есть чисел вида 2K, где K – некоторое неотрицательное целое число. Назовем такие числа бинарными. Это такие числа как 2, 4, 8, 16, 32 и т.д. Действительно, когда речь идет о размере памяти или о разрешении экрана монитора, то мы часто наталкиваемся на бинарные числа. Все это связано с принципом хранения информации в памяти ЭВМ.
Задано целое число N. Требуется определить, является ли оно бинарным.
Входной файл input.txt содержит единственное целое число N, не превосходящее 10000 по абсолютной величине.
В выходной файл output.txt выведите YES, если заданное число является бинарным, и NO в противном случае.
| Ввод | Вывод |
|---|---|
| 1024 | YES |
| 23 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Два одноклассника Петя и Вася родились не ранее 1993 и не позднее 1994 года, причем, Петя старше Васи.
Напишите программу, которая по заданным дням рождения определяет: на сколько дней Петя старше Васи.
Заметим, что 1993 и 1994 года не являются високосными, т.е. в феврале в них ровно 28 дней.
Входной файл input.txt содержит дату рождения Пети в первой строке и дату рождения Васи во второй. Даты заданы в формате «ДД.ММ.ГГ», например, строка 06.02.93 означает дату рождения 6 февраля 1993 года.
В выходной файл output.txt выведите единственное число – искомое количество дней.
| Ввод | Вывод |
|---|---|
| 01.01.93 02.01.93 |
1 |
| 05.02.94 05.03.94 |
28 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось до дня рождения.
Примечание. Високосные годы - это те, номер которых делится на 400, а также те, номер которых делится на 4, но не делится на 100.
В первой строке входного файла INPUT.TXT находятся, разделённые пробелами, день и месяц рождения, во второй - разделённые пробелами текущие день, месяц и год. Ограничения: год от 1920 до 3000, месяц от 1 до 12, день от 1 до числа дней в месяце.
В выходной файл OUTPUT.TXT выведите число дней, оставшихся до дня рождения.
| Ввод | Вывод |
|---|---|
| 19 04 19 04 2002 |
0 |
| 05 05 19 04 2002 |
16 |
| 29 02 28 02 2001 |
1096 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Целое положительное число m записывается в двоичной системе счисления, разряды (в этой записи) переставляются в обратном порядке и число переводится в десятичную систему счисления. Получившееся число принимается за значение функции B(m).
Требуется написать программу, которая для заданного m вычислит B(m).
Входной файл input.txt содержит натуральное число m (m ≤ 109).
В выходной файл output.txt выведите значение B(m).
| Ввод | Вывод |
|---|---|
| 4 | 1 |
| 6 | 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Одна из базовых задач компьютерной графики – обработка черно-белых изображений. Изображения можно представить в виде прямоугольников шириной w и высотой h, разбитых на w×h единичных квадратов, каждый из которых имеет либо белый, либо черный цвет. Такие единичные квадраты называются пикселами. В памяти компьютера сами изображения хранятся в виде прямоугольных таблиц, содержащих нули и единицы.
Во многих областях очень часто возникает задача комбинации изображений. Одним из простейших методов комбинации, который используется при работе с черно-белыми изображениями, является попиксельное применение некоторой логической операции. Это означает, что значение пиксела результата получается применением этой логической операции к соответствующим пикселам аргументов. Логическая операция от двух аргументов обычно задается таблицей истинности, которая содержит значения операции для всех возможных комбинаций аргументов.
Требуется написать программу, которая вычислит результат попиксельного применения заданной логической операции к двум черно-белым изображениям одинакового размера.
Первая строка входного файла input.txt содержит два целых числа w и h (1 ≤ w, h ≤ 100). Последующие h строк описывают первое изображение и каждая из этих строк содержит w символов, каждый из которых равен нулю или единице. Далее следует описание второго изображения в аналогичном формате. Последняя строка входного файла содержит описание логической операции в виде четырех чисел, каждое из которых – ноль или единица. Первое из них есть результат применения логической операции в случае, если оба аргумента – нули, второе – результат в случае, если первый аргумент – ноль, второй – единица, третье – результат в случае, если первый аргумент – единица, второй – ноль, а четвертый – в случае, если оба аргумента – единицы.
В выходной файл output.txt необходимо вывести результат применения заданной логической операции к изображениям в том же формате, в котором изображения заданы во входном файле.
| Ввод | Вывод |
|---|---|
| 5 3 01000 11110 01000 10110 00010 10110 0110 |
11110 11100 11110 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
На хоккейном стадионе в одном большом городе расположено большое прямоугольное табло. Оно имеет n строк и m столбцов (то есть состоит из n x m ячеек). Во время хоккейного матча это табло служит для отображения счета и времени, прошедшего с начала тайма, а в перерывах на нем показывают различную рекламу.
В связи с этим возникла задача проверки возможности показа на этом табло определенной рекламной заставки. Заставка также, как и табло, имеет размер n строк на m столбцов. Каждая из ячеек заставки окрашена в один из четырех цветов - трех основных: красный - R, зеленый - G, синий - B и черный - .(точка).
Каждая из ячеек табло характеризуется своими цветопередаточными возможностями. Любая из ячеек табло может отображать черный цвет - это соответствует тому, что на нее вообще не подается напряжение. Также каждая из ячеек может отображать некоторое подмножество множества основных цветов. В этой задаче эти подмножества будут кодироваться следующим образом:
Напишите программу, которая по описанию табло и заставки определяет: возможно ли на табло отобразить эту заставку.
Первая строка входного файла input.txt содержит целые числа n и m (1 ≤ n, m ≤ 100). Далее идут n строк по m символов каждая - описание заставки. Каждый из символов описания заставки принадлежит множеству {R, G, B, .} . Их значения описаны выше.
После этого идет описание табло. Оно содержит n строк по m чисел, разделенных пробелами. Значения чисел описаны выше.
В выходной файл output.txt выведите YES, если на табло возможно отобразить заставку и NO - в противном случае.
| Ввод | Вывод |
|---|---|
| 3 3 .GB R.B RG. 0 1 2 3 4 5 6 7 0 |
NO |
| 2 3 RGB .G. 7 7 7 7 7 7 |
YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 17%
Вновь созданная фирма купила заброшенные склады на окраине города. Новому заведующему складами поручили произвести учёт в короткие сроки. Всё шло хорошо, пока случайно не рассыпали контейнеры с болтами и гайками на каждом складе, после чего собрали их в общие (для болтов и гаек) контейнеры, потеряв при этом несколько деталей.
Помогите оценить нанесённый ущерб на каждом складе, приняв во внимание, что, помимо потерянных деталей, болт (или гайка) считается непригодным, если он не имеет соответствующей гайки (или болта).
Во входном файле input.txt описано текущее положение на складе. В первой строке через пробел записаны три целых числа: k1, l1, m1 – начальное число болтов (100 ≤ k1 ≤ 30000, k1 кратно 100), процент потерянных деталей (0 ≤ l1 ≤ 100) и стоимость одного болта (1 ≤ m1 ≤ 100) соответственно. Во второй строке через пробел записаны также три целых числа: k2, l2, m2 – начальное число гаек (100 ≤ k2 ≤ 30000, k2 кратно 100), процент потерянных деталей (0 ≤ l2 ≤ 100) и стоимость одной гайки (1 ≤ m2 ≤ 100) соответственно.
В выходной output.txt выведите одно целое число – размер ущерба.
| Ввод | Вывод |
|---|---|
| 1000 10 100 1200 20 90 |
37000 |
| 5000 15 23 4000 17 22 |
53600 |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Цель при игре в боулинг – сбить шаром максимальное количество кеглей. Партия в этой игре состоит из 10 туров. Задача игрока – сбить все 10 кеглей в каждом туре. Для этого игрок может совершить 2 броска шара, за исключением:
Количество очков в каждом туре равно количеству сбитых кеглей, кроме двух бросков, называемых «Strike» и «Spare».
Strike: игрок сбивает 10 кеглей первым броском, очки в этом туре начисляются из расчета – 10 + сумма очков за два последующих броска.
Spare: игрок сбивает 10 кеглей двумя бросками, очки в этом туре начисляются из расчета – 10 + сумма очков за один последующий бросок.
Результат партии складывается из результатов всех 10 туров.
Требуется написать программу, которая определит количество набранных игроком очков.
Входной файл input.txt содержит в первой строке одно натуральное число, определяющее количество совершенных бросков. Вторая строка содержит натуральные числа (разделенные пробелом), обозначающие количество сбитых кеглей за каждый совершенный бросок.
Выходной файл output.txt должен содержать одно целое число – количество набранных игроком очков.
| Ввод | Вывод |
|---|---|
| 12 10 10 10 10 10 10 10 10 10 10 10 10 |
300 |
| 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
0 |
| 15 10 10 10 8 2 10 3 4 8 2 4 5 10 4 5 |
173 |
Время: 1 сек.
Память: 16 Мб
Сложность: 19%
На столе лежат коробка размера A1 × B1 × C1 и коробка размера A2 × B2 × C2. Выясните можно ли одну из этих коробок положить в другую, если разрешены повороты коробок вокруг любого ребра на угол 90 градусов.
Первая строка входного файла содержит три целых числа A1, B1 и C1. Вторая строка входного файла содержит три целых числа A2, B2 и C2. Все числа положительны и не превосходят 1000.
Если коробки одинаковы, выведите "Boxes are equal". Если первая коробка может быть положена во вторую, выведите "The first box is smaller than the second one". Если вторая коробка может быть положена в первую, выведите "The first box is larger than the second one". Иначе, выведите "Boxes are incomparable".
| Ввод | Вывод |
|---|---|
| 1 2 3 3 2 1 |
Boxes are equal |
| 2 2 3 3 2 1 |
The first box is larger than the second one |
| 2 2 3 3 2 3 |
The first box is smaller than the second one |
| 3 4 5 2 4 6 |
Boxes are incomparable |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
В деревне Интернетовка все дома расположены вдоль одной улицы по одну сторону от нее. По другую сторону от этой улицы пока ничего нет, но скоро все будет – школы, магазины, кинотеатры и т.д.
Для начала в этой деревне решили построить школу. Место для строительства школы решили выбрать так, чтобы суммарное расстояние, которое проезжают ученики от своих домов до школы, было минимально.
План деревни можно представить в виде прямой, в некоторых целочисленных точках которой находятся дома учеников. Школу также разрешается строить только в целочисленной точке этой прямой (в том числе разрешается строить школу в точке, где расположен один из домов – ведь школа будет расположена с другой стороны улицы).
Напишите программу, которая по известным координатам домов учеников поможет определить координаты места строительства школы.
В первой строке входного файла INPUT.TXT сначала записано число N — количество учеников (1 ≤ N ≤ 100000). Во второй строке записаны в строго возрастающем порядке координаты домов учеников — целые числа, не превосходящие 2∙109 по модулю.
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — координату точки, в которой лучше всего построить школу. Если ответов несколько, выведите наибольший из них.
| Ввод | Вывод |
|---|---|
| 4 1 2 3 4 |
3 |
| 3 -1 0 1 |
0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Петя и Вася часто играют в различные логические игры. Недавно Петя поведал Васе о новой игре «Быки и коровы» и теперь они играют в эту игру сутками. Суть игры очень проста: Петя загадывает четырехзначное число, состоящее из различных цифр. Вася отгадывает задуманное Петей число, перебирая возможные варианты. Каждый раз Вася предлагает вариант своего числа, а Петя делает Васе подсказку: сообщает количество быков и коров, после чего Вася с учетом подсказки продолжает отгадывание числа до тех пор, пока не отгадает. Быки – это количество цифр в предложенном Васей числе, совпадающих по значению и стоящих в правильной позиции в задуманном Петей числе. Коровы – количество цифр, совпадающих по значению, но находящихся в неверной позиции. Например, если Петя задумал число 5671, а Вася предложил вариант 7251, то число быков равно 1 (только цифра 1 на своем месте), а число коров равно 2 (только цифры 7 и 5 не на своих местах). Петя силен в математике, но даже он может ошибаться. Помогите Пете написать программу, которая бы по загаданному Петей и предложенному Васей числам сообщала количество быков и коров.
В единственной строке входного файла input.txt записано два четырехзначных натуральных числа A и B через пробел, где А – загаданное Петей число, а В – предложенный Васей вариант.
В выходной файл output.txt нужно вывести два целых числа через пробел — количество быков и коров.
| Ввод | Вывод |
|---|---|
| 5671 7251 | 1 2 |
| 1234 1234 | 4 0 |
| 2034 6234 | 2 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 14%
Оргкомитет Московской городской олимпиады решил организовать обзорную экскурсию по Москве для участников олимпиады. Для этого был заказан двухэтажный автобус (участников олимпиады достаточно много и в обычный они не умещаются) высотой 437 сантиметров. На экскурсионном маршруте встречаются N мостов. Жюри и оргкомитет олимпиады очень обеспокоены тем, что высокий двухэтажный автобус может не проехать под одним из них. Им удалось выяснить точную высоту каждого из мостов. Автобус может проехать под мостом тогда и только тогда, когда высота моста превосходит высоту автобуса.
Помогите организаторам узнать, закончится ли экскурсия благополучно, а если нет, то установить, где произойдет авария.
Во входном файле input.txt сначала содержится число N (1 ≤ N ≤ 1000). Далее идут N натуральных чисел, не превосходящих 10000 - высоты мостов в сантиметрах в том порядке, в котором они встречаются на пути автобуса.
В единственную строку выходного файла output.txt нужно вывести фразу "No crash", если экскурсия закончится благополучно. Если же произойдет авария, то нужно вывести сообщение "Crash k", где k - номер моста, где произойдет авария. Фразы выводить без кавычек ровно с одним пробелом внутри.
| Ввод | Вывод |
|---|---|
| 1 763 |
No crash |
| 3 763 245 113 |
Crash 2 |
| 1 437 |
Crash 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
Петр Васильевич Колошин никогда не был пугливым человеком и всегда отличался спокойствием и прозорливостью, особенно в сфере мировых политических и экономических процессов. Однако, несмотря ни на что, Петр Васильевич очень недооценил последствия мирового финансового кризиса и, как следствие, был уволен пару недель назад с должности сетевого администратора одной большой и серьезной организации.
Несмотря ни на что, Петр Васильевич не отчаялся и решил начать свое дело. Тщательно проанализировав бизнес-климат в своем регионе, Петр Васильевич пришел к выводу, что наиболее целесообразным будет открыть новый таксопарк. Первое с чего решил начать новоиспеченный бизнесмен – это закупить автомобили. За все время работы Петр Васильевичу удалось накопить сумму S, которую он готов потратить на закупку машин.
В городе, в котором живет Петр Васильевич, есть только один автосалон. Известно, что в этом автосалоне выставлено на продажу N автомобилей, причем установлено, что стоимость i-го автомобиля равняется Ai. Вашей задачей является помочь еще неопытному бизнесмену Петр Васильевичу приобрести максимальное количество автомобилей, потратив сумму не более S.
В первой строке входного файла input.txt находится два целых положительных числа разделенные одиночным пробелом – это числа N (1 ≤ N ≤ 100) и S (1 ≤ S ≤ 109) соответственно.
Вторая строка содержит ровно N чисел Ai (1 ≤ Ai ≤ 109
) , которые описывают стоимость соответствующих автомобилей. Все числа в строке разделены одиночными пробелами.В выходной файл output.txt выведите одно целое число – максимальное количество автомобилей, которые сможет приобрести Петр Васильевич на сумму не более чем S.
| Ввод | Вывод |
|---|---|
| 5 30 15 5 11 10 12 |
3 |
| 6 18 5 10 1 2 1 20 |
4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 6%
На свой день рождения Петя купил красивый и вкусный торт, который имел идеально круглую форму. Петя не знал, сколько гостей придет на его день рождения, поэтому вынужден был разработать алгоритм, согласно которому он сможет быстро разрезать торт на N равных частей. Следует учесть, что разрезы торта можно производить как по радиусу, так и по диаметру.
Помогите Пете решить эту задачу, определив наименьшее число разрезов торта по заданному числу гостей.
Входной файл input.txt содержит натуральное число N – число гостей, включая самого виновника торжества (N ≤ 1000).
В выходной файл output.txt выведите минимально возможное число разрезов торта.
| Ввод | Вывод |
|---|---|
| 2 | 1 |
| 3 | 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Никифор на день рождения собирается угостить друзей тортом. Известно, что на дне рождения может быть либо M, либо N человек, включая самого именинника. На какое минимальное количество частей ему нужно разрезать торт (не обязательно всех равных), чтобы при любом из указанных количеств собравшихся, все съели торт поровну?
Входной файл INPUT.TXT содержит два натуральных числа M и N через пробел (1 ≤ M, N ≤ 30000).
В выходной файл OUTPUT.TXT выведите единственное число – искомое минимальное количество кусочков торта.
| Ввод | Вывод |
|---|---|
| 2 3 | 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Карусель – одна из популярных форм проведения командных соревнований по решению задач. Наибольшую известность в использовании данной модели в России получил ресурс «Интернет-карусели», расположенный в сети Интернет по адресу http://karusel.desc.ru.
Всем командам, участвующим в карусели, предлагаются в строгом порядке одни и те же задачи, которые необходимо решить в установленное время. Система подсчета баллов такова, что доминирующим фактором является не количество решенных задач, а длины последовательностей правильных решений.
Начисление баллов происходит согласно следующей схеме:
Вам требуется написать программу, которая по результатам ответов команды определит итоговый балл.
Первая строка входного файла input.txt содержит натуральное число N – количество задач в карусели (N ≤ 105). Во второй строке расположены N цифр 0 или 1, разделенные пробелом; i-я цифра соответствует корректности ответа команды на i-ю задачу (0 – неверный ответ, 1 – верный ответ).
В выходной файл output.txt выведите целое число – количество набранных баллов.
| Ввод | Вывод |
|---|---|
| 3 1 1 1 |
12 |
| 9 1 0 1 1 1 1 0 1 1 |
30 |
Время: 1 сек.
Память: 16 Мб
Сложность: 19%
В театре работает n актеров. Известно, что среди них a – высоких, b – голубоглазых и с – блондинов. Для главной роли в новом спектакле режиссеру требуется только один высокий голубоглазый блондин. Чтобы спланировать свое время для беседы с каждым таким артистом из труппы театра, режиссеру необходимо узнать, какое максимальное или какое минимальное количество артистов из работающих в театре подходит для этой роли.
Требуется написать программу, которая по заданным числам n, a, b и с определяет минимальное или максимальное количество актеров, с которыми режиссер должен переговорить.
Первая строка входного файла input.txt содержит одно число, которое задает: минимальное или максимальное количество актеров необходимо найти. Это число может принимать следующие значения:
Вторая строка входного файла содержит разделенные пробелами четыре целых числа: n, a, b, с (1 ≤ n ≤ 10 000, 0 ≤ a ≤ n, 0 ≤ b ≤ n, 0 ≤ c ≤ n).
В выходной файл output.txt выведите одно число – минимальное или максимальное (в зависимости от входных данных) количество актеров, которые могут претендовать на главную роль в новом спектакле.
| Ввод | Вывод |
|---|---|
| 2 5 3 4 5 |
3 |
| 1 5 3 4 5 |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Замок состоит из K уровней. Каждый уровень - это правильный N-угольник, угол которого совпадает с углом предыдущего. На сторонах первого уровня находится по две комнаты (в углах), на сторонах каждого следующего - на одну больше. Сколько в замке комнат?
В первой строке входного файла input.txt указаны два целых числа N и K (3 ≤ N ≤ 106; 1 ≤ K ≤ 106).
В выходной файл output.txt выведите целое число - количество комнат в замке.
| Ввод | Вывод |
|---|---|
| 6 3 | 28 |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
Известно, что шахматная доска имеет размерность 8х8 и состоит из клеток 2х цветов, например, черного и белого (см. рисунок). Каждая клетка имеет координату, состоящую из буквы и цифры. Горизонтальное расположение клетки определяется буквой от A до H, а вертикальное – цифрой от 1 до 8. Заметим, что клетка с координатой А1 имеет черный цвет. Требуется по заданной координате определить цвет клетки.
В единственной строке входного файла input.txt записана координата клетки на шахматной доске: всего два символа – буква и цифра (без пробелов).
В выходной файл output.txt нужно вывести «WHITE», если указанная клетка имеет белый цвет и «BLACK», если она черная.
| Ввод | Вывод |
|---|---|
| C3 | BLACK |
| G8 | WHITE |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
В доме живет N жильцов. Однажды решили провести перепись всех жильцов данного дома и составили список, в котором указали возраст и пол каждого жильца. Требуется найти номер самого старшего жителя мужского пола.
Во входном файле input.txt в первой строке задано натуральное число N – количество жильцов (N ≤ 100). В последующих N строках располагается информация о всех жильцах: каждая строка содержит два целых числа: V и S – возраст и пол человека (1 ≤ V ≤ 100, S – 0 или 1). Мужскому полу соответствует значение S=1, а женскому – S=0.
Выходной файл output.txt должен содержать номер самого старшего мужчины в списке. Если таких жильцов несколько, то следует вывести наименьший номер. Если жильцов мужского пола нет, то выведите -1.
| Ввод | Вывод |
|---|---|
| 4 25 1 70 1 100 0 3 1 |
2 |
| 2 25 0 25 1 |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Рассмотрим таблицу, содержащую n строк и m столбцов, в каждой клетке которой расположен ноль или единица. Назовем такую таблицу симпатичной, если в ней нет ни одного квадрата 2 на 2, заполненного целиком нулями или целиком единицами.
Так, например, таблица 4 на 4, расположенная слева, является симпатичной, а расположенная справа таблица 3 на 3 - не является.
Задано несколько таблиц. Необходимо для каждой из них выяснить, является ли она симпатичной.
Первая строка входного файла input.txt содержит количество t (1 ≤ t ≤ 10) наборов входных данных. Далее следуют описания этих наборов. Описание каждого набора состоит из строки, содержащей числа n и m (1 ≤ n,m ≤ 100), и n строк, каждая из которых содержит по m чисел, разделенных пробелами. j-ое число в i+1-ой строке описания набора входных данных - элемент aij соответствующей таблицы. Гарантируется, что все aij равны либо нулю, либо единице.
Для каждого набора входных данных выведите в файл output.txt единственную строку, содержащую слово «YES», если соответствующая таблица является симпатичной, и слово «NO» - в противном случае.
| Ввод | Вывод |
|---|---|
| 3 1 1 0 4 4 1 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 3 3 0 0 1 0 0 1 1 1 1 |
YES YES NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 23%
Совсем недавно Вася занялся программированием и решил реализовать собственную программу для игры в шахматы. Но у него возникла проблема определения правильности хода конем, который делает пользователь. Т.е. если пользователь вводит значение «C7-D5», то программа должна определить это как правильный ход, если же введено «E2-E4», то ход неверный. Так же нужно проверить корректность записи ввода: если например, введено «D9-N5», то программа должна определить данную запись как ошибочную. Помогите ему осуществить эту проверку!
В единственной строке входного файла input.txt записан текст хода (непустая строка), который указал пользователь. Пользователь не может ввести строку, длиннее 5 символов.
В выходной файл output.txt нужно вывести «YES», если указанный ход конем верный, если же запись корректна (в смысле правильности записи координат), но ход невозможен, то нужно вывести «NO». Если же координаты не определены или заданы некорректно, то вывести сообщение «ERROR».
| Ввод | Вывод |
|---|---|
| C7-D5 | YES |
| E2-E4 | NO |
| BSN | ERROR |
Время: 1 сек.
Память: 16 Мб
Сложность: 16%
На стандартной шахматной доске 8х8 заданы координаты двух клеток. Требуется определить: имеют ли данные клетки одинаковый цвет?
Входной файл input.txt содержит целые числа x1, y1, x2, y2, описывающие координаты двух клеток (x1,y1) и (x2,y2). Ограничения: 1 ≤ x1,y1,x2,y2 ≤ 8.
В выходной файл output.txt выведите YES, если поля одного цвета, или слово NO в противном случае.
| Ввод | Вывод |
|---|---|
| 1 1 4 4 | YES |
| 1 2 7 5 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Вася решил научиться играть в шахматы. Он нашел книгу с записями партий и внимательно их изучает. Может быть, когда-нибудь Вася станет великим шахматистом, но пока он еще учится в начальной школе, и ему нелегко дается шахматная нотация. Больше всего трудностей у Васи вызывают ходы шахматного коня. Он попросил вас написать программу, которая сможет сообщить Васе, на какие клетки можно пойти конем с заданной клетки.
Вы, наверное, тоже знаете, что конь в шахматах всегда перемещается либо на две клетки по горизонтали и на одну по вертикали, либо на одну по горизонтали и на две по вертикали. Вертикали обозначаются маленькими английскими буквами от a до h, а горизонтали - цифрами от 1 до 8. Любая клетка на шахматной доске обозначается буквой соответствующей вертикали и цифрой соответствующей горизонтали, например, c6 или e2.
Во входном файле input.txt записано 2 символа – координаты клетки, где стоит конь.
В выходной файл output.txt в произвольном порядке выведите все координаты клеток, на которые за один ход может попасть конь, находящийся на заданной клетке.
| Ввод | Вывод |
|---|---|
| e2 | c1 c3 d4 f4 g1 g3 |
| a1 | b3 c2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Хозяин мастерской по изготовлению шахматных досок гроссмейстер Хосе Раулевич Капабланка был очень зол. «Ну, кто так раскрашивает доски?! Ну скажи мне, Бобби, разве я тебя так учил раскрашивать доски?!» - спрашивал он у своего подмастерья.
А дело было вот в чем. Недавно его мастерская получила заказ на изготовление нестандартной шахматной доски размером N на M . Саму шахматную доску из дорогой породы дерева он изготовил, а раскрасить ее поля он поручил своему подмастерью и ученику Бобби. Бобби, однако, справился с этой задачей очень плохо. Он раскрасил доску так, что некоторые соседние поля оказались покрашенными в один цвет. А такого на шахматной доске никогда не было, и быть не может!
Теперь у Бобби есть всего одна ночь на исправление своей ошибки. Казалось бы, времени много. Но все усложняется тем, что перекрасить поле шахматной доски достаточно сложная задача, ведь надо аккуратно снять старый слой краски. Поэтому Бобби хочет перекрасить наименьшее возможное число полей. Помогите ему написать программу, которая найдет: какие поля доски ему надо перекрасить.
Единственным требованием к шахматной доске, которая должна получиться в результате, является то, что любые два соседних поля покрашены в разные цвета. Ну, и, конечно, любое поле должно быть либо белым, либо черным.
Соседними полями на шахматной доске Хосе Раулевич считает поля, имеющие общую сторону.
Первая строка входного файла INPUT.TXT содержит два целых числа: N и M (1 ≤ N, M ≤ 100). Далее идут N строк по M символов в каждой. j-ый символ i-ой из этих строк равен W, если Бобби покрасил соответствующее (т.е. находящееся на пересечении i-ой горизонтали и j-ой вертикали) поле в белый цвет, и B, если в черный.
В первой строке выходного файла OUTPUT.TXT выведите минимальное количество k полей, которые должен перекрасить Бобби.
Далее выведите k строк, описывающих поля, которые он должен перекрасить. Описание каждого поля должно состоять из двух чисел: i и j (1 ≤ i ≤ N, 1 ≤ j ≤ M), задающих горизонталь и вертикаль, на пересечении которых находится данное поле.
Ни одно поле не должно быть указано в этом списке дважды. Может оказаться так, что k = 0, и Хосе Раулевич зря кричал на Бобби. Впрочем, это объясняется тем, что гроссмейстер уже весьма стар и его зрение далеко не идеально.
| Ввод | Вывод |
|---|---|
| 4 4 BBBB BBBB BBBB BBBB |
8 1 1 1 3 2 2 2 4 3 1 3 3 4 2 4 4 |
| 3 3 WBW BWB WBW |
0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 18%
Аня разделила доску размера m × n на клетки размера 1×1 и раскрасила их в черный и белый цвет в шахматном порядке. Васю заинтересовал вопрос: клеток какого цвета получилось больше – черного или белого.
Для того чтобы выяснить это, он спросил у Ани, в какой цвет она раскрасила j-ю клетку в i-м ряду доски. По этой информации Вася попытался определить, клеток какого цвета на доске больше.
Требуется написать программу, которая по размерам доски и цвету j-й клетки в i-м ряду определит, клеток какого цвета на доске больше — черного или белого.
Входной файл input.txt содержит пять целых чисел: m, n, i, j и c (1 ≤ m, n ≤ 109, 1 ≤ i ≤ m, 1 ≤ j ≤ n, с = 0 или с = 1). Значение c = 0 означает, что j-я клетка в i-м ряду доски раскрашена в черный цвет, а значение c = 1 – в белый цвет.
В выходной файл output.txt выведите одно из трех слов:
| Ввод | Вывод |
|---|---|
| 3 5 1 1 0 | black |
| 3 5 2 1 0 | white |
| 4 4 1 1 1 | equal |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Из шахматной доски по границам клеток выпилили связную (не распадающуюся на части) фигуру без дыр. Требуется определить ее периметр.
Во входном файле input.txt сначала записано число N (1 ≤ N ≤ 64) – количество выпиленных клеток. В следующих N строках указаны координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.
В выходной файл output.txt выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).
| Ввод | Вывод |
|---|---|
| 3 1 1 1 2 2 1 |
8 |
| 1 8 8 |
4 |
Время: 0.5 сек.
Память: 16 Мб
Сложность: 33%
Билли Бонс положил в сундук некоторое количество золотых монет. На второй год он вынул из сундука положительное количество монет. Начиная с третьего года, он добавлял столько монет, сколько было в сундуке два года назад.
Требуется написать программу, которая определит, сколько монет было в сундуке в первый и во второй года, если в X-м году там оказалось ровно Y монет.
Входной файл INPUT.TXT содержит натуральные числа X и Y (3 ≤ X ≤ 20, 1 ≤ Y ≤ 32767).
В выходной файл OUTPUT.TXT выведите через пробел количество монет в первый и второй года. Гарантируется, что решение задачи всегда существует.
| Ввод | Вывод |
|---|---|
| 6 25 | 5 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 16%
Однажды в просторах рунета появился следующий ребус:
Никто так и не смог его разгадать. Позже оказалось, что число в правом столбце равно сумме "кругляшей", которые есть в цифрах числа, расположенного слева. Ваша задача написать программу, которая определяет, сколько кругляшей в числе.
Во входном файле input.txt записано целое число N (0 ≤ N ≤ 10100).
В выходной файл output.txt выведите одно число – количество кругляшей в числе N.
| Ввод | Вывод |
|---|---|
| 157892 | 3 |
| 203516 | 2 |
| 409578 | 4 |
| 236271 | 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
На какое максимальное число областей можно разбить плоскость при помощи N окружностей одинакового радиуса?
Входной файл input.txt содержит целое число N – количество окружностей, 0 ≤ N ≤ 33333.
В выходной файл output.txt выведите одно число – максимальное количество областей, на которое можно разбить плоскость при помощи N окружностей одинакового радиуса.
| Ввод | Вывод |
|---|---|
| 0 | 1 |
| 3 | 8 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Петя очень любит наблюдать за электронными часами. Он целыми днями смотрел на часы и считал, сколько раз встречается каждая цифра. Через несколько месяцев он научился по любому промежутку времени говорить, сколько раз на часах за это время встретится каждая цифра, и очень гордился этим.
Вася решил проверить Петю, но он не знает, как это сделать. Вася попросил Вас помочь ему. Напишите программу, решающую эту задачу.
Первая и вторая строки входного файла input.tx содержат начало и конец промежутка времени соответственно. Начальное время не превосходит конечное. Время задается в формате hh:mm:ss (0 ≤ hh < 24, 0 ≤ mm < 60, 0 ≤ ss < 60). hh, mm, ss дополнены ведущими нулями до двух символов. Эти нули также учитываются при подсчете числа цифр.
Выходной файл output.txt должен содержать 10 строк. В i-ой строке должно быть написано, сколько раз встречается цифра i-1.
| Ввод | Вывод |
|---|---|
| 23:59:58 23:59:59 |
0 0 2 2 0 4 0 0 1 3 |
| 13:24:09 13:24:40 |
5 45 45 45 36 3 3 3 3 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Старинные часы бьют каждые полчаса. Причем в начале каждого часа они бьют столько раз, сколько сейчас часов (по 1 разу – в час ночи и в час дня, по 2 раза – в два часа ночи в два часа дня и т.д., в полночь и в полдень они бьют, соответственно, по 12 раз). И еще 1 раз они бьют в середине каждого часа.
Дан промежуток времени (известно, что прошло строго меньше 24 часов). Напишите программу, определяющую, сколько ударов сделали часы за это время.
В первой строке входного файла input.txt записан начальный момент времени, во второй строке — конечный. Моменты времени задаются двумя целыми числами, разделяющимися пробелом. Первое число задает часы (от 0 до 23), второе — минуты (от 1 до 59, при этом оно не равно 30).
В выходной файл output.txt выведите одно число — сколько ударов сделали часы за этот отрезок времени.
| Ввод | Вывод |
|---|---|
| 5 20 10 25 |
45 |
| 10 25 5 20 |
135 |
| 5 2 5 21 |
0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Несмотря на небольшую площадь, территорию Волшебной страны населяет множество народов, различных по культуре и внешнему облику, но говорящих на одном языке. Каждый народ предпочитает носить одежду определённого цвета, который отличается от цвета одежды других народов. Народы имеют разные традиции, порой традиции одних народов противоречат традициям других народов. Поэтому жители каждого города следуют традициям того народа, представителей которого проживает в этом городе больше всего. Если оказывается, что таких народов несколько, все жители города следуют традициям самого миролюбивого народа с белым цветом одежды (белый цвет обозначается нулём).
Путешественник стоит на высоком холме недалеко от входа в город. С этого холма он видит цвет одежды каждого жителя города. Путешественник торопится войти в город, ему важно быстро определить, традициям какого народа следовать в этом городе.
Первая строка входного файла input.txt содержит число N - количество жителей города, которых видит путешественник (1 ≤ N ≤ 104). Вторая строка теста содержит N натуральных чисел, разделенных пробелами. Каждое число сi – это цвет одежды i-го жителя (1 ≤ ci ≤ 100).
В выходной файл output.txt выведите единственное целое число – цвет одежды народа, традициям которого следуют жители города.
| Ввод | Вывод |
|---|---|
| 6 1 2 5 2 1 2 |
2 |
| 4 5 5 4 4 |
0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 8%
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно перевернуть, чтобы все монетки были повернуты вверх одной и той же стороной.
В первой строке входного файла input.txt записано натуральное число N (1 ≤ N ≤ 100) – число монеток. В каждой из последующих N строк содержится одно целое число – 1 если монетка лежит решкой вверх и 0 если вверх гербом.
В выходной файл output.txt выведите минимальное количество монет, которые нужно перевернуть.
| Ввод | Вывод |
|---|---|
| 5 1 0 1 1 0 |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
В N корзинах находятся золотые монеты. Корзины пронумерованы числами от 1 до N. Во всех корзинах, кроме одной, монеты весят по w граммов. В одной корзине монеты фальшивые и весят w–d граммов. Волшебник берет 1 монету из первой корзины, 2 монеты из второй корзины, и так далее, и, наконец, N-1 монету из (N-1)-й корзины. Из N-й корзины он не берет ничего. Он взвешивает взятые монеты и сразу указывает на корзину с фальшивыми монетами.
Требуется написать программу, которая выполняет это волшебство.
Входной файл input.txt содержит четыре целых числа: N, w, d и P – суммарного веса отобранных монет (2 ≤ N ≤ 8000, 1 ≤ d < w ≤ 30).
В выходной файл output.txt выведите номер корзины с фальшивыми монетами.
| Ввод | Вывод |
|---|---|
| 10 25 8 1109 | 2 |
| 10 25 8 1125 | 10 |
| 8000 30 12 959879400 | 50 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
В Банановой республике очень много холмов, соединенных мостами. На химическом заводе произошла авария, в результате чего испарилось экспериментальное удобрение "зован". На следующий день выпал цветной дождь, причем он прошел только над холмами. В некоторых местах падали красные капли, в некоторых - синие, а в остальных - зеленые, в результате чего холмы стали соответствующего цвета. Президенту Банановой республики это понравилось, но ему захотелось покрасить мосты между вершинами холмов так, чтобы мосты были покрашены в цвет холмов, которые они соединяют. К сожалению, если холмы разного цвета, то покрасить мост таким образом не удастся. Посчитайте количество таких "плохих" мостов.
В файле input.txt в первой строке записано N (0 < N ≤ 100) - число холмов. Далее идет матрица смежности, описывающая наличие мостов между холмами (1-мост есть, 0-нет). Предпоследняя строка пустая, а в последней строке записано N чисел, обозначающих цвет холмов: 1 - красный; 2 - синий; 3 - зеленый.
В файл output.txt вывести количество "плохих" мостов.
| Ввод | Вывод |
|---|---|
| 7 0 1 0 0 0 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 1 1 3 3 |
4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
(Время: 1 сек. Память: 16 Мб Сложность: 22%)
Таблицей умножения назовем таблицу размера n строк на m столбцов, в которой на пересечении i-ой строки и j-ого столбца стоит число i∙j (строки и столбцы нумеруются с единицы).
В одной из математических школ было решено провести педагогический эксперимент. Для того, чтобы ученикам было проще запоминать таблицу умножения, некоторые числа в ней будут покрашены в красный, некоторые - в синий, а некоторые - в зеленый цвет (оставшиеся числа будут черными).
Процесс покраски чисел можно условно разбить на четыре этапа. На первом этапе все числа красятся в черный цвет. На втором - все четные числа красятся в красный цвет, на третьем – все числа, делящиеся на 3, красятся в зеленый цвет, на четвертом - все числа, делящиеся на 5, красятся в синий цвет.
Директор школы хочет знать, какое количество картриджей для принтеров необходимо закупить для печати таблиц. Поэтому ему необходима информация о том, сколько чисел какого цвета будет в одной раскрашенной таблице умножения n на m. Напишите программу, решающую задачу подсчета соответствующих количеств.
Входной файл input.txt содержит два натуральных числа n и m (1 ≤ n,m ≤ 1000).
В первой строке выходного файла output.txt выведите количество чисел, покрашенных в красный цвет, во второй - в зеленый, в третьей - в синий, в четвертой - в черный. Следуйте формату, приведенному в примерах.
| Ввод | Вывод |
|---|---|
| 10 10 | RED : 21 GREEN : 39 BLUE : 36 BLACK : 4 |
| 5 2 | RED : 5 GREEN : 2 BLUE : 2 BLACK : 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Сообщество роботов живет по следующим законам:
В начале первого года было K роботов и все они были только что собраны.
Требуется написать программу, которая найдет количество роботов в начале N-го года.
Входной файл INPUT.TXT содержит записанные через пробел числа K (1 ≤ K ≤ 500) и N (1 ≤ N ≤ 100).
Выходной файл OUTPUT.TXT должен содержать одно число - количество роботов в начале N-го года. Количество роботов меньше, чем 231.
| Ввод | Вывод |
|---|---|
| 3 2 | 8 |
| 8 2 | 22 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
На клеточном поле N•M расположены две жёсткие детали. Деталь A накрывает в каждой строке несколько (не ноль) первых клеток, деталь B — несколько (не ноль) последних; каждая клетка либо полностью накрыта одной из деталей, либо нет.
Деталь B начинают двигать влево, не поворачивая, пока она не упрётся в A хотя бы одной клеткой. Определите, на сколько клеток будет сдвинута деталь B.
В первой строке входного файла input.txt записано два числа N и M — число строк и столбцов соответственно (1 ≤ N, M ≤ 100). Далее следуют N строк, задающих расположение деталей. В каждой находится ровно M символов "A" (клетка, накрытая деталью A), "B" (накрытая деталью B) или "." (свободная клетка).
В единственную строку выходного файла output.txt нужно вывести одно число — ответ на задачу.
| Ввод | Вывод |
|---|---|
| 4 6 AA.BBB A....B AAA..B A..BBB |
1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 19%
Последовательность из символов «0» и «1» называется бинарной. Они широко применяются в информатике и других науках. Одно из неудобств бинарных последовательностей – их трудно запоминать. Для решения этой проблемы были предложены разные способы их сжатия. Программист Слава использует следующий способ: просматривая последовательность слева направо, он заменяет «1» на «a», «01» на «b», «001» на «c», …, «00000000000000000000000001» на «z». Напишите программу, которая поможет Славе автоматизировать этот способ сжатия.
Входной файл input.txt содержит бинарную последовательность – строку из символов «0» и «1» длиной не более 255 символов. Гарантируется, что к ней применим указанный способ сжатия.
В выходной файл output.txt выведите одну строку из английских строчных букв от «a» до «z» – сжатие заданной бинарной последовательности.
| Ввод | Вывод |
|---|---|
| 101 | ab |
| 101001 | abc |
| 0000000000000000000000001 | y |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:
Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
Первая строка входного файла input.txt содержит два целых числа troom и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).
Вторая строка содержит одно слово, записанное строчными буквами английского алфавита — режим работы кондиционера, как указано выше.
Выходной файл output.txt должен содержать одно целое число — температуру, которая установится в комнате через час.
| Ввод | Вывод |
|---|---|
| 10 20 heat |
20 |
| 10 20 freeze |
10 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
(Время: 1 сек. Память: 16 Мб Сложность: 22%)
Возьмем четырехзначное число, в котором не все цифры одинаковы, например 6264. Расположим цифры сначала в порядке убывания - 6642; затем, переставив их в обратном порядке, получим 2466. Вычтем последнее число из 6642. На следующем шаге с полученной разностью проделаем тоже самое. Через несколько таких действий получится число, переходящее само в себя и называемое постоянной Капрекара.
Требуется написать программу, которая находит эту постоянную и количество шагов для ее получения из заданного четырехзначного числа.
Входной файл input.txt содержит одну строку, в которой записано четырехзначное число.
В выходной файл output.txt записываются: в первой строке постоянная Капрекара, во второй – количество шагов для ее получения.
| Ввод | Вывод |
|---|---|
| 1234 | 6174 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 33%
В известном городе Кызылорда, где находятся N центров, живет некий граф - Азамат. Он желает узнать количество различных построек дорог между ними, если известно, что два центра могут быть связаны в одном из двух направлений или не связаны вообще. Например, при N=2 все получается 3 варианта:
Во входном файле INPUT.TXT записано единственное натуральное число - количество центров в городе, 2 ≤ N ≤ 100.
В единственную строку выходного файла OUTPUT.TXT нужно вывести число всевозможных построек дорог.
| Ввод | Вывод |
|---|---|
| 2 | 3 |
| 4 | 729 |
Время: 1 сек.
Память: 16 Мб
Сложность: 2%
Трое студентов, пятикурсник, третьекурсник и первокурсник, живут в одной комнате общежития и любят участвовать в соревнованиях по программированию по правилам ACM. У каждого из них свой подход к решению задач. Пятикурсник решает все задачи строго по порядку - сначала первую, затем вторую, и так до последней. Третьекурсник решает задачи строго в обратном порядке – сначала последнюю, затем предпоследнюю, и так до первой. А первокурсник сначала решает самую простую задачу, затем – самую простую из оставшихся задач, и так до самой сложной. Сложность задачи определяется временем, необходимым для её решения. Для решения одной и той же задачи наши студенты тратят одинаковое количество времени.
Ваша задача – по описанию соревнований по программированию определить, кто из студентов победит. Напомним, что по правилам ACM побеждает участник, за 300 минут решивший больше всего задач, а при равенстве количества задач – набравший меньше штрафного времени.
Наши студенты – очень сильные программисты, и при решении задач они не делают неправильных попыток. Поэтому за задачу начисляется штраф в размере количества минут от начала соревнования до её посылки на проверку. Если же и количество штрафного времени совпадает – то студент со старшего курса уступает победу студенту с младшего курса.
Входной файл input.txt содержит натуральное число N (N ≤ 10) – количество задач. Во второй строке записаны N натуральных чисел – количество минут, необходимое для решения каждой задачи. Время решения задачи не превосходит 300 минут.
В выходной файл output.txt выведите номер курса студента, одержавшего победу в олимпиаде.
| Ввод | Вывод |
|---|---|
| 3 40 30 60 |
1 |
| 4 10 20 30 40 |
1 |
В первом тесте пятикурсник набрал 240 штрафных минут (40 + 70 + 130), третьекурсник – 280 (60 + 90 + 130), первокурсник - 230 минут (30 + 70 + 130).
Во втором тесте третьекурсник набрал 300 минут, а первокурсник и пятикурсник – 200 минут. Но пятикурсник уступил первокурснику.
Задачу можно было решить гораздо проще - вывести 1 в файл output.txt, т.к. первокурсник всегда побеждает при таких условиях.
================================================ FILE: convex_hull/ConvexHull.java ================================================ package convex_hull; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.*; public class ConvexHull { private static StringBuilder result = new StringBuilder(); private static ArrayListВремя: 1 сек.
Память: 16 Мб
Сложность: 27%
Определение 1:
Рассмотрим бесконечный лист клетчатой бумаги. Закрасим некоторое множество клеток в черный цвет. Теперь мы хотим закрасить минимальное количество клеток, так, чтобы множество черных клеток стало выпуклым.
Напомним, что геометрическая фигура Φ называется выпуклой, если для любых точек A из Φ и В из Φ с вещественными координатами отрезок [AB] принадлежит Φ.
В первой строке входного файла input.txt содержатся два числа N и M (1 ≤ N, M ≤ 100) — размеры куска бумаги, куда попали все черные клетки. В каждой из следующих N строк содержится М символов «*» или «.». Символ «*» обозначает черную клетку, а «.» белую.
В выходной файл output.txt выведите выпуклое множество, содержащее минимальное количество дополнительно покрашенных черных клеток, в ровно N строках по M символов «*» или «.» в каждой./p>
| Ввод | Вывод |
|---|---|
| 2 4 ..*. .**. |
.**. .**. |
| 4 3 .*. .*. .*. .*. |
.*. .*. .*. .*. |
Время: 1 сек.
Память: 16 Мб
Сложность: 7%
Петя, Катя и Сережа делают из бумаги журавликов. Вместе они сделали S журавликов. Сколько журавликов сделал каждый ребенок, если известно, что Петя и Сережа сделали одинаковое количество журавликов, а Катя сделала в два раза больше журавликов, чем Петя и Сережа вместе?
В единственной строке входного файла input.txt записано одно натуральное число S – общее количество сделанных журавликов (S < 106).
В единственную строку выходного файла output.txt нужно вывести три числа, разделенных пробелами – количество журавликов, которые сделал каждый ребенок (Петя, Катя и Сережа).
| Ввод | Вывод |
|---|---|
| 6 | 1 4 1 |
| 24 | 4 16 4 |
| 60 | 10 40 10 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Археологами найден набор древних копий старинных манускриптов с мифами – различными историями о древних богах. К несчастью, переписчики этих манускриптов не отличались особой грамотностью и умудрились в каждом имени сделать ровно по одной орфографической ошибке – т.е ровно одну из букв божественного имени заменили какой-то другой буквой. Археологи смогли составить список правильных написаний имен богов, так же им удалось выписать из манускриптов все имена собственные. Однако сопоставлять два списка – свыше их сил. Помогите им в этом!
Первая строка входного файла input.txt содержит число N – количество имен богов в списке. Следующие N строк – имена богов. Далее идет строка, содержащая число M – количество «подозрительных» слов, выписанных из манускриптов. Следующие M строк – «подозрительные» слова. Каждое из имен богов и «подозрительных» слов – последовательность из K заглавных букв английского алфавита (1 ≤ N, M, K ≤ 30).
В выходной файл output.txt выводится N чисел – для каждого божьего имени выводится число “подозрительных” слов, которые являются именем данного бога с одной ошибкой.
| Ввод | Вывод |
|---|---|
| 3 ZEUS POSEIDON AFINA 4 ZEVS POSEYDON AVYNA ZERS |
2 1 0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 19%
Крестики-нолики – логическая игра между двумя противниками на квадратном поле 3 на 3 клетки. Один из игроков играет «крестиками» (тот, кто ходит первым), другой – «ноликами». Игроки по очереди ставят на свободные клетки поля знаки (один всегда «крестики», другой всегда «нолики»). Первый, выстроивший в ряд три своих фигуры по вертикали, горизонтали или диагонали, выигрывает и на этом игра заканчивается. В том случае, когда все клетки заполнены и победитель не определен, игра завершается ничьей.
По состоянию игрового поля в конце игры требуется определить результат игры для первого игрока: выиграл, проиграл или сыграл вничью.
Входной файл input.txt содержит информацию об игровом поле – три строки по три символа в каждой. Символ «X» (ASCII 88) означает «крестик», символ «O» (ASCII 79) - «нолик», а символ «.» (ASCII 46) - пустую клетку.
В выходной файл OUTPUT.TXT выведите в случае победы первого игрока «Win», в случае его проигрыша – «Lose» и «Draw» в случае ничьей.
| Ввод | Вывод |
|---|---|
| .OX .XO XXO |
Win |
| OXO .OX OXX |
Lose |
| XOX XOX OXO |
Draw |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
На одной из лекций по информатике студент Петя узнал про новый шифр - простой замены. Он и на самом деле прост: в тексте каждая буква алфавита заменяется некоторой другой буквой того же алфавита (может быть, той же самой).
Петя написал письмо своему другу Васе. Письмо - это текст из нескольких строк, написанный на английском языке, с использованием только строчных английских букв и пробелов. В произвольное место, отдельной строкой Петя вставил ключевую фразу: "the quick brown fox jumps over the lazy dog", о которой они с Васей договорились заранее. После чего зашифровал письмо. Известно, что пробелы в письме не шифруются. Получив такое письмо, Вася сумеет его расшифровать и прочесть. Иногда Петя ошибается, и забывает вставить ключевую фразу. Увы, в этом случае прочесть письмо невозможно.
Так как процесс расшифровки трудоемок, Вася просит написать программу, с помощью которой он сможет быстро расшифровывать письмо от Пети.
Первая строка входного файла INPUT.TXT содержит целое число N – количество строк в письме (1 ≤ N ≤ 200). Далее идет N строк письма (пустые строки отсутствуют, в каждой строке не более 80 символов).
В выходной файл OUTPUT.TXT в случае присутствия в тексте ключевой фразы выведите N строк расшифрованного сообщения. Если ключевой фразы нет, следует вывести «No solution» (без кавычек). Гарантируется, что есть не более одного способа расшифровки текста из входных данных.
| Ввод | Вывод |
|---|---|
| 3 vtz ud xnm xugm itr pyy jttk gmv xt otgm xt xnm puk ti xnm fprxq xnm ceuob lrtzv ita hegfd tsmr xnm ypwq ktj frtjrpgguvj otvxmdxd prm iev prmvx xnmq |
now is the time for all good men to come to the aid of the party the quick brown fox jumps over the lazy dog programming contests are fun arent they |
| 3 vtz ud xnm xugm itr pyy jttk gmv xt otgm xt xnm puk ti xnm fprxq xnm fffff lrtzv iia wwwfd tsmr xnm ypwq ktj frtjrpgguvj otvxmdxd prm iev prmvx xnmq |
No solution |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
Отрезок задан координатами своих концевых точек. Требуется вычислить длину этого отрезка.
Входной файл INPUT.TXT содержит координаты концов отрезка в формате X1 Y1 X2 Y2 . Все координаты – целые числа, не превышающие 1000 по абсолютной величине.
В выходной файл OUTPUT.TXT выведите длину отрезка с точностью 10-5.
| Ввод | Вывод |
|---|---|
| 3 4 8 4 | 5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
На днях Иван у себя в прихожей выложил кафель, состоящий из квадратных черных и белых плиток. Прихожая Ивана имеет квадратную форму 4х4, вмещающую 16 плиток. Теперь Иван переживает, что узор из плиток, который у него получился, может быть не симпатичным. С точки зрения дизайна симпатичным узором считается тот, который не содержит в себе квадрата 2х2, состоящего из плиток одного цвета.
По заданному расположению плиток в прихожей Ивана требуется определить: является ли выполненный узор симпатичным.
Входной файл input.txt содержит 4 строки по 4 символа «W» или «B» в каждой, описывающие узор из плиток. Символ «W» обозначает плитку белого цвета, а «B» - черного.
В выходной файл output.txt выведите «Yes», если узор является симпатичным и «No» в противном случае.
| Ввод | Вывод |
|---|---|
| BWBW BBWB WWBB BWWW |
Yes |
| BBWB BBWB WWBW BBWB |
No |
Время: 1 сек.
Память: 16 Мб
Сложность: 34%
При обработке различной информации часто приходится оперировать с данными о датах. В этой задаче вам нужно составить программу, которая сможет вывести число, месяц и день недели, которые наступят через K дней, начиная с первого января 2008 года. Напомним, что это был вторник.
Входной файл INPUT.TXT содержит одно целое число K (0 ≤ K ≤ 1000) - количество дней, после первого января, через которое наступит (или наступила) интересующая дата.
В выходной файл OUTPUT.TXT ваша программа должна записать, какие день недели, число и месяц наступят по прошествии заданного времени. Результаты проверяются автоматически, поэтому вам следует придерживаться формата, показанного в примерах.
| Ввод | Вывод |
|---|---|
| 0 | Tuesday, 01.01 |
| 5 | Sunday, 06.01 |
По-английски дни недели называются так: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
================================================ FILE: decoding/Decoding.java ================================================ package decoding; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Decoding { private static MapВремя: 1 сек.
Память: 16 Мб
Сложность: 28%
Рассмотрим работу простейшего шифра. Шифруемое сообщение состоит из английских букв, записанных в нижнем регистре и символа пробела. Шифрование происходит посимвольно. Каждой букве ставим в соответствие число: a – 1, b – 2, … , z – 26, ‘ ‘ – 27. Далее индекс символа складывается с номером в сообщении по модулю 27, а результат сложения представляется в системе счисления с основанием 27 (0, 1, …, Q в верхнем регистре).
Необходимо написать дешифратор.
В единственной строке входного файла input.txt содержится закодированная строка, длиной от 1 до 255 символов. Строка записана в верхнем регистре.
В единственную строку выходного файла output.txt нужно вывести расшифровку заданной строки, при этом символы английского алфавита следует выводить в нижнем регистре.
| Ввод | Вывод |
|---|---|
| L7MO | test |
| 576J9FLF | decoding |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Задано натуральное число N. Требуется написать программу, вычисляющую количество различных трехзначных чисел получающихся из N вычеркиванием цифр из его десятичной записи.
Входной текстовый файл input.txt содержит одно натуральное число N (1 ≤ N ≤ 10100).
Выходной текстовый файл output.txt должен содержать одно целое число - найденное количество трехзначных чисел.
| Ввод | Вывод |
|---|---|
| 12 | 0 |
| 111111111110011111111 | 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
Даны длины трех отрезков. Требуется проверить: могут ли они являться сторонами невырожденного треугольника.
Входной файл input.txt содержит 3 натуральных числа X Y Z – длины заданных отрезков. Длины отрезков записаны в одной строке через пробел и не превышают 1000.
В выходной файл output.txt выведите YES, если отрезки могут быть сторонами треугольника и NO в противном случае.
| Ввод | Вывод |
|---|---|
| 3 4 5 | YES |
| 1 1 5 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Дан некоторый набор букв и словарь. Ваша задача - подсчитать, сколько различных слов из словаря можно составить из этих букв.
В первой строке файла input.txt записано число N - количество слов в словаре (0 ≤ N ≤ 1000). В следующих N строках файла записано по одному слову из словаря. Слова содержат от 1 до 10 маленьких английских букв. Все слова в словаре различны. В последней строке файла записан набор букв (от 1 до 100 букв).
Запишите в файл output.txt количество различных слов из словаря, которые можно составить из заданного набора букв.
| Ввод | Вывод |
|---|---|
| 7 ant bee cat dog ewe fly gnu bew |
0 |
| 7 bee fly cat dog ant ewe gnu tancugd |
3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Требуется написать программу, определяющую, в каких системах счисления с основаниями от 2 до 36 это число не содержит одинаковых цифр.
Входной файл input.txt содержит одно целое число N (1 ≤ N ≤ 109), записанное в десятичной системе счисления.
Выходной файл output.txt должен содержать основания систем счисления в порядке возрастания, разделенные одним пробелом.
| Ввод | Вывод |
|---|---|
| 100 | 11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Составить программу, удаляющую одну цифру из N-значного числа, такую, чтобы плюс-минус сумма была наибольшей. Плюс-минус сумма – это сумма с чередованием цифр числа с разными знаками: для числа 764 это +7-6+4. Если удалить цифру 7, то будет +6-4=2, если удалить цифру 6, то будет +7-4=3, если удалить цифру 4, то будет +7-6=1. При этом видно, что максимум достигается при удалении средней цифры 6 и равен 3.
Во входном файле input.txt записано натуральное N-значное число (2 ≤ N ≤ 50).
В выходной файл output.txt выведите значение наибольшей суммы.
| Ввод | Вывод |
|---|---|
| 764 | 3 |
| 6274861 | 14 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
По заданным натуральным числам A и B найти K-ю цифру после запятой в дроби A/B в десятичной системе счисления.
В единственной строке входного файла input.txt записано три натуральных числа A, B и K через пробел. А и B – цифры (числа от 1 до 9), число K не превышает 106.
В выходной файл output.txt нужно вывести ответ на задачу.
| Ввод | Вывод |
|---|---|
| 7 4 2 | 5 |
| 1 6 13 | 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Когда Петя учился в школе, он часто участвовал в олимпиадах по информатике, математике и физике. Так как он был достаточно способным мальчиком и усердно учился, то на многих из этих олимпиад он получал дипломы. К окончанию школы у него накопилось n дипломов, причем, как оказалось, все они имели одинаковые размеры: w – в ширину и h – в высоту.
Сейчас Петя учится в одном из лучших российских университетов и живет в общежитии со своими одногруппниками. Он решил украсить свою комнату, повесив на одну из стен свои дипломы за школьные олимпиады. Так как к бетонной стене прикрепить дипломы достаточно трудно, то он решил купить специальную доску из пробкового дерева, чтобы прикрепить ее к стене, а к ней – дипломы. Для того чтобы эта конструкция выглядела более красиво, Петя хочет, чтобы доска была квадратной и занимала как можно меньше места на стене. Каждый диплом должен быть размещен строго в прямоугольнике размером w на h. Прямоугольники, соответствующие различным дипломам, не должны иметь общих внутренних точек.
Требуется написать программу, которая вычислит минимальный размер стороны доски, которая потребуется Пете для размещения всех своих дипломов.
Входной файл input.txt содержит три целых числа: w, h, n (1 ≤ w, h, n ≤ 109).
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 2 3 10 | 9 |
Алгоритм
Из-за больших ограничений на n,w,h линейный перебор возможной длины стороны квадрата не проходит по времени, поэтому данную задачу следует решать, используя бинарный поиск по ответу. Очевидно, что размеры доски лежат в пределах от min(w,h) до n * max(w,h). За O(1) легко проверить, поместятся ли все грамоты в квадрат со стороной a (n <= (a / w) * (a / h)). Пускай мы уверены, что искомый ответ лежит в интервале от Min до Max, тогда проверим удовлетворяет ли условию квадрат со стороной Mid = (Min + Max) / 2. Если да, то Max = Mid, иначе Min = Mid+1. Выполняя эту процедуру до тех пор, пока не сойдутся Min и Max мы будем всё точнее получать возможный диапазон ответа (каждый раз область поиска уменьшается в 2 раза). Когда Min станет равно Max выведем значение Min и прекратим работу программы. Сложность такого решения: O(log(n*max(w,h))).
================================================ FILE: divider/Divider.java ================================================ package divider; import java.util.*; import java.io.*; public class Divider{ public static void main(String[] argv) throws IOException{ Scanner sc = new Scanner(new File("input.txt")); int a= sc.nextInt(), b= sc.nextInt(); while(a != b){ if(a > b) a = a - b; else b = b - a; } PrintWriter pw = new PrintWriter(new File("output.txt")); pw.print(a); pw.close(); } } ================================================ FILE: divider/README.md ================================================Время: 1 сек.
Память: 16 Мб
Сложность: 15%
Даны два натуральных числа A и B. Требуется найти их наибольший общий делитель (НОД).
Во входном файле input.txt в единственной строке записаны натуральные числа A и B через пробел (A, B ≤ 109).
В выходной файл output.txt выведите НОД чисел А и В.
| Ввод | Вывод |
|---|---|
| 12 42 | 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 13%
Как и многие другие девочки, Маша любит разные гадания. Некоторое время назад Маша узнала новый способ гадать на числах – для какого-нибудь интересующего ее натурального числа n надо посчитать сумму всех чисел, на которые n делится без остатка. Маша не очень любит арифметику, и попросила вас написать программу, которая автоматизирует процесс гадания.
В единственной строке входного файла input.txt записано натуральное число n (n ≤ 1000), которое Маша была вынуждена сообщить.
В выходной файл output.txt выведите сумму всех натуральных делителей числа n.
| Ввод | Вывод |
|---|---|
| 6 | 12 |
| 10 | 18 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Рассмотрим дробь 1/N. Чтобы преобразовать эту обыкновенную дробь в дробь десятичную, следует разделить числитель на знаменатель. Результат может иметь конечное число знаков, но может быть и бесконечной периодической дробью.
Примеры:
N = 2: 1/2 = 0,5 – конечное число знаков.
N = 7: 1/7 = 0,(142857) – бесконечная периодическая дробь.
N = 28: 1/28=0,03(571428) – бесконечная периодическая дробь с предпериодом (предпериод - минимальная по длине часть после запятой, которая не входит ни в один период).
Если десятичная дробь имеет конечное число знаков, то будем говорить, что она не имеет периода.
Ваша задача – написать программу, которая по заданному N определит, есть ли у дроби 1/N в десятичной записи период, или нет.
Входной файл input.txt содержит натуральное число N, не превосходящее 1018.
В выходной файл output.txt выведите «YES» – если у дроби 1/N есть период, иначе выведите «NO».
| Ввод | Вывод |
|---|---|
| 2 | NO |
| 3 | YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Для того, чтобы заработать огромный капитал, новым русским необходимо иметь неординарное мышление. Конечно, при такой сложной работе, должны так же присутствовать какие то особенные механизмы для отдыха и развлечений. В этих целях в казино был придуман специальный набор домино для новых русских. Обычные кости домино представляют собой набор из различных комбинаций сочетаний двух плиток, на каждой из которых отображается от 0 до 6 точек. А этот набор представляет собой подобные сочетания плиток, но количество точек на каждой может быть от нуля до заданного значения, которое зависит от интеллектуального уровня игроков. В таком наборе костей присутствуют всевозможные сочетания плиток, но при этом ни одна из костей не повторяется (даже такие комбинации как 2-5 и 5-2 считаются одинаковыми).
Для изготовления данного набора костей перед изготовителем встала проблема вычисления суммарного количества точек на всех костях домино. Это связано с тем, что домино для новых русских украшается бриллиантами, которые представляют собой точки на плитках и при изготовлении необходимо оценить стоимость.
Помогите написать программу, которая решит эту задачу.
Входной файл input.txt содержит одно натуральное число N – максимальное количество точек на одной плитке домино. (N ≤ 10000)
В выходной файл output.txt выведите количество бриллиантовых камней, которые необходимо изготовить для заданного набора костей.
| Ввод | Вывод |
|---|---|
| 2 | 12 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Натуральное число называется двояким, если в его десятичной записи встречается не более двух различных цифр. Например, числа 3, 23, 33, 100, 12121 — двоякие, а числа 123 и 9980 — нет.
Для заданного натурального числа N требуется найти ближайшее к нему двоякое число.
Во входном файле input.txt записано одно натуральное число N, не превосходящее 30 000.
В выходной файл output.txt требуется выдать единственное число — ближайшее двоякое к числу N. Если таких чисел несколько, то следует вывести наименьшее.
| Ввод | Вывод |
|---|---|
| 123 | 122 |
| 2012 | 2020 |
| 11111 | 11111 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Представь, что ты - капитан команды, которая только что выиграла мировой финал ACM ICPC, и теперь тебе предстоит отпраздновать свою победу со своими друзьями, которых у тебя ровно K-1. Для этого необходимо закупить N бутылок любимого напитка (остается только догадываться какого) в ближайшем магазине. Стоимость i-й бутылки составляет Ci рублей. К сожалению, продавец не любит, когда его клиенты покупают слишком много бутылок, поэтому он продаёт только по одной бутылке за раз, а также изменяет цену бутылки для клиента, который ранее у него уже делал покупки. Точнее, если клиент уже купил X бутылок, то он должен заплатить (X+1)*Ci рублей, чтобы купить бутылку номер i.
Необходимо определить минимально возможную стоимость приобретения N бутылок с учетом того, что в процессе покупки могут участвовать не более K человек (только ты и твои друзья).
Первая строка входного файла INPUT.TXT содержит два числа N и K (N, K ≤ 100), соответственно во второй строке определены значения C1, C2, ..., CN ( Ci ≤ 106). Все числа во входных данных натуральные.
В выходной файл OUTPUT.TXT выведите оптимальную стоимость покупки.
| Ввод | Вывод |
|---|---|
| 3 3 2 5 6 |
13 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
В стране Олимпиадии снова выборы.
Страна состоит из маленьких графств. Графства объединяются в конфедерации. Каждая конфедерация раз в год выбирает себе покровителя – одного из 200 жрецов. Этот ритуал называется Великими Перевыборами Жрецов и выглядит так: конфедерации одновременно подают заявления (одно от конфедерации) в Совет Жрецов о том, кого они хотели бы видеть своим покровителем (если заявление не подано, то считают, что конфедерация хочет оставить себе того же покровителя). После этого все заявки удовлетворяются. Если несколько конфедераций выбирают одного и того же Жреца, то они навсегда объединяются в одну. Таким образом, каждый Жрец всегда является покровителем не более чем одной конфедерации. Требуется написать программу, позволяющую Совету Жрецов выяснить номер Жреца-покровителя каждого графства после Великих Перевыборов. В Совете все графства занумерованы (начиная с 1). Все Жрецы занумерованы числами от 1 до 200 (некоторые из них сейчас могут не быть ничьими покровителями).
Во входном файле input.txt записано число N – количество графств в стране (1 ≤ N ≤ 5000) – и далее для каждого графства записан номер Жреца-покровителя конфедерации, в которую оно входит (графства считаются по порядку их номеров). Затем указаны заявления от конфедераций. Сначала записано число M – количество поданных заявлений, а затем M пар чисел (1 ≤ M ≤ 200): первое число – номер текущего Жреца-покровителя, второе – номер желаемого Жреца-покровителя.
Все числа во входном файле разделяются пробелами и (или) символами перевода строки.
В выходной файл output.txt вывести для каждого графства одно число – номер его Жреца-покровителя после Великих Перевыборов. Сначала – для первого графства, затем – для второго и т.д.
| Ввод | Вывод |
|---|---|
| 7 1 1 5 3 1 5 1 2 5 1 1 3 |
3 3 1 3 3 1 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
В доме Вилли установили скоростной лифт новой экспериментальной модели. В этом лифте кнопки с номерами этажей заменены двумя другими кнопками. При нажатии на первую кнопку лифт поднимается на один этаж вверх, а при нажатии на вторую – опускается на один этаж вниз.
Младшему брату Вилли Дилли очень нравится кататься на новом лифте. Он катается на нём до тех пор, пока не побывает на каждом из этажей хотя бы по одному разу. После этого Дилли довольный возвращается домой.
Зная порядок, в котором Дилли нажимал на кнопки лифта, попробуйте определить общее количество этажей в доме Вилли и Дилли.
Первая строка входного файла input.txt содержит последовательность нажатий на кнопки лифта. Символ «1» означает, что была нажата первая кнопка, а символ «2» – что была нажата вторая кнопка. Символы «1» и «2» не разделены пробелами. Количество нажатий от 1 до 100. Гарантируется, что лифт никогда не опускался ниже первого и не поднимался выше последнего этажа.
В выходной файл output.txt следует вывести одно число – количество этажей в доме Вилли и Дилли.
| Ввод | Вывод |
|---|---|
| 11 | 3 |
| 21212 | 2 |
| 1221221221221 | 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Для делимости числа на 11 необходимо, чтобы разность между суммой цифр, стоящих на четных местах, и суммой цифр, стоящих на нечетных местах, делилась на 11.
Требуется написать программу, которая проверит делимость заданного числа на 11.
Входной файл INPUT.TXT содержит одно натуральное число N, делимость которого надо проверить (1 ≤ N ≤ 1010000).
В выходной файл output.txt выведите “YES”, если число делится на 11, или “NO” иначе.
| Ввод | Вывод |
|---|---|
| 121 | YES |
| 1211 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Разведкой был перехвачен ряд шифровок, которые передавал Джеймс Бонд. Известно, что каждое послание зашифровано методом циклического сдвига. Суть которого в том, что каждая буква заменяется на букву, отстоящую в алфавите от первой на определенном расстоянии. Это расстояние называется знаменателем шифра. Так, при знаменателе шифра 2 буква D превратится в F, буква Q – в S, а Z – в B. Известно, что Бонд использует знаменатели от 0 до 25, и составляет послания исключительно из заглавных букв английского алфавита. Знаменатели в шифровках постоянно меняются, так что расшифровать содержимое послания будет не просто. После тщательного анализа удалось примерно определить предмет посланий. Теперь для каждого послания точно известно одно из входящих туда слов.
В первой строке входного файла INPUT.TXT содержится строка с перехваченным посланием, а во второй строке – слово, которое обязательно присутствует в этом послании. Обе строки состоят только из заглавных английских букв и содержат от 1 до 40 символов.
В выходной файл OUTPUT.TXT выведите расшифрованный текст, либо сообщение «IMPOSSIBLE», если разгадать шифровку невозможно. В тех случаях, когда расшифровка возможна с различными знаменателями, то следует вывести вариант с наименьшим таким значением.
| Ввод | Вывод |
|---|---|
| HELLOAMERICA AMERICA |
HELLOAMERICA |
| KHOORDPHULFD HELLOAMERICA |
HELLOAMERICA |
| KHOORDPHULFD KHOORDPHULFC |
IMPOSSIBLE |
Время: 1 сек.
Память: 16 Мб
Сложность: 3%
Неспокойно сейчас на стапелях шестого дока межгалактического порта планеты Торна. Всего через месяц закончится реконструкция малого броненесущего корвета “Эния”. И снова этому боевому кораблю и его доблестной команде предстоят тяжелые бои за контроль над плутониевыми рудниками Сибелиуса. Работа не прекращается ни на секунду, лазерные сварочные аппараты работают круглые сутки. От непрерывной работы плавятся шарниры роботов-ремонтников. Но задержаться нельзя ни на секунду.
И вот в этой суматохе обнаруживается, что термозащитные панели корвета вновь требуют срочной обработки сульфидом тория. Известно, что на обработку одного квадратного метра панели требуется 1 нанограмм сульфида. Всего необходимо обработать N прямоугольных панелей размером A на B метров. Вам необходимо как можно скорее подсчитать, сколько всего сульфида необходимо на обработку всех панелей “Энии”. И не забудьте, что панели требуют обработки с обеих сторон.
Во входном файле input.txt содержатся 3 целых положительных числа N (N ≤ 100), A (A ≤ 100), B (B ≤ 100).
В выходной файл output.txt нужно вывести единственное число – вес необходимого для обработки сульфида тория в нанограммах.
| Ввод | Вывод |
|---|---|
| 5 2 3 | 60 |
| 14 23 5 | 3220 |
Время: 2 сек.
Память: 16 Мб
Сложность: 26%
Задано n чисел a1, a2, ... , an. Выберите из них четные числа, у которых третья справа цифра в их представлении в восьмеричной системе счисления нечетна.
Выбранные числа отсортируйте по неубыванию и выведите в выходной файл.
Первая строка входного файла input.txt содержит целое число n (1 ≤ n ≤ 105). Вторая строка входного файла содержит n целых чисел: a1, a2, ... , an. Они отделены друг от друга пробелами и заданы в десятичной системе счисления. Для всех i (1 ≤ i ≤ n ) верно неравенство 64 ≤ ai ≤ 109.
В первой строке выходного файла output.txt выведите количество k искомых чисел. Во второй строке выведите эти числа в указанном порядке в десятичной системе счисления.
| Ввод | Вывод |
|---|---|
| 4 100 64 64 130 |
3 64 64 100 |
| 3 128 129 130 |
0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Мише поручили решить следующую задачу: имеется дата начала и конца некоторого мероприятия; требуется определить его длительность. Он написал программу и попросил Машу её проверить.
Через некоторое время пришла Маша и расстроила Мишу: «Твоя программа работает неправильно. По-моему, ты забыл, что года бывают високосными».
У Миши очень мало свободного времени и он не успевает исправить свою программу. Помогите ему.
Год является високосным, тогда и только тогда, когда выполнено одно из следующих условий:
Например, года 400, 404, 496, 504, 2000, 2004 являются високосными, а года 100, 200, 300, 503, 1000, 2001, 2005 - нет.
Первая строка входного файла input.txt содержит дату начала мероприятия. Вторая строка входного файла содержит дату конца мероприятия. Гарантируется, что первая дата меньше второй. Даты заданы в формате DD.MM.YYYY.
В выходной файл OUTPUT.TXT выведите единственное число - длительность мероприятия (в днях).
| Ввод | Вывод |
|---|---|
| 01.09.2005 06.10.2005 |
36 |
| 01.09.0005 01.09.0006 |
366 |
| 01.02.2004 01.03.2004 |
30 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Во время исследований, посвященных появлению жизни на планете Олимпия, учеными было сделано несколько сенсационных открытий:
Чтобы не придумывать названия во время исследований, ученые пронумеровали все виды организмов, которые когда-либо существовали на планете. Для этого они нарисовали дерево эволюции с корнем Bitozoria Programulis, которая получила номер 1. Далее нумеровали виды каждого шага эволюции слева направо. Таким образом непосредственные подвиды Bitozoria Programulis получили номера 2 и 3. Следующими были занумерованы виды третьего шага эволюции – подвиды вида 2 получили номера 4 и 5, а вида 3 – номера 6 и 7, и т.д.
Напишите программу, которая по номерам двух видов вычислит номер вида их ближайшего общего предка в дереве эволюции.
В первой строке входного файла INPUT.TXT записано целое число N (1 ≤ N ≤ 60) – количество этапов эволюции, которые произошли на планете Олимпия до текущего времени. Вторая и третья строки содержат по одному натуральному числу, которые представляют номера видов, для которых требуется найти номер их ближайшего общего предка.
В выходной файл OUTPUT.TXT выведите одно натуральное число – номер ближайшего предка для двух видов.
| Ввод | Вывод |
|---|---|
| 4 15 12 |
3 |
| 18 233016 233008 |
14563 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
В этом году при поступлении в университет абитуриентам требовалось успешно сдать экзамены по математике и физике. К сожалению, с этим испытанием справились не все. Известно, что на экзамены пришло N абитуриентов, из них M – сдали математику, F – сдали физику, а L – не сдали ни одного предмета. Найдите, сколько абитуриентов сдали оба предмета и стали студентами, а также определите, сколько абитуриентов сдали один экзамен: только по математике или только по физике.
Входной файл input.txt содержит четыре целых числа, разделенных пробелами: N (0 < N ≤ 2×109), M, F, L (0 ≤ M, F, L ≤ 2×109).
В выходной файл output.txt выведите три числа через пробел:
| Ввод | Вывод |
|---|---|
| 2 2 1 0 | 1 1 0 |
| 10 5 5 5 | 5 0 0 |
| 10 5 5 0 | 0 5 5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Определение 1:
n!!...!=n(n-k)(n-2k)...(n mod k), если n не делится на k,
n!!...!=n(n-k)(n-2k)...k, если n делится на k (знаков ! в обоих случаях k штук).
Определение 2:
X mod Y — остаток от деления X на Y.
Например, 10 mod 3 = 1; 3! = 3•2•1; 10!!! = 10•7•4•1;
Мы по заданным n и k смогли вычислить значение выражения из определения 1. А вам слабо?
Во входном файле input.txt содержится ровно одна строка. Сначала – целое число n, (1 ≤ n ≤ 10) , затем ровно один пробел, затем k восклицательных знаков (1 ≤ k ≤ 20).
В выходной файл OUTPUT.TXT выведите одно число – значение n!!..! .
| Ввод | Вывод |
|---|---|
| 10 !!! | 280 |
| 9 !! | 945 |
| 3 ! | 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Между двумя крупнейшими городами нашей страны Санкт-Петербургом и Москвой ежедневно совершают рейсы n поездов. Для каждого поезда известно его время отправления из Санкт-Петербурга и время прибытия в Москву.
Найдите самый быстрый поезд и его скорость в предположении, что длина железной дороги между Санкт-Петербургом и Москвой равна 650 км.
Первая строка входного файла input.txt содержит целое число n (1 ≤ n ≤ 100). Каждая из последующих n строк описывает ровно один поезд.
Описание поезда состоит из его названия, времени отправления и времени прибытия. Название поезда – строка длиной от 1 до 50 символов, заключенная в кавычки. Она может содержать буквы английского алфавита, пробелы, цифры, символы тире («–») и подчеркивания («_»). Время отправления и прибытия заданы в формате ЧЧ:ММ. Строчные и заглавные буквы в названиях поездов различаются.
Время в пути для каждого из поездов составляет хотя бы одну минуту и не превышает 24 часов.
Гарантируется, что самый быстрый поезд определяется единственным образом.
В выходной файл output.txt выведите название самого быстрого поезда и его скорость. Скорость выводите в километрах в час и округляйте к ближайшему целому по математическим правилам. Следуйте формату вывода, приведенному в примерах.
| Ввод | Вывод |
|---|---|
| 3
"ER-200" 06:43 10:40 "Red Arrow" 23:55 07:55 "Express" 23:59 08:00 |
The fastest train is "ER-200". Its speed is 165 km/h, approximately. |
| 3
"Train1" 00:00 00:00 "Train2" 00:00 00:01 "Train3" 00:01 00:01 |
The fastest train is "Train2". Its speed is 39000 km/h, approximately. |
| 2
"Slow Train 1" 10:00 09:59 "Slow Train 2" 10:00 10:00 |
The fastest train is "Slow Train 1". Its speed is 27 km/h, approximately. |
Время: 1 сек.
Память: 16 Мб
Сложность: 16%
Последовательностью Фибоначчи называется последовательность чисел a0, a1, ..., an, ..., где a0 = 0, a1 = 1, ak = ak-1 + ak-2 (k > 1).
Требуется найти N-е число Фибоначчи.
Во входном файле input.txtзаписано целое число N (0 ≤ N ≤ 30).
В выходной файл output.txt выведите N-е число Фибоначчи.
| Ввод | Вывод |
|---|---|
| 7 | 13 |
Время: 1 сек.
Память: 16 Мб
Сложность: 23%
Вам наверняка знакомы числа Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21... Они определяются рекуррентным соотношением: Fn = Fn-1 + Fn-2, F0 = F1 = 1.
Требуется найти последнюю цифру n-го числа Фибоначчи.
Во входном файле input.txt содержится одно целое число n (0 ≤ n ≤ 108).
В выходной файл output.txt необходимо вывести одно число - последнюю цифру числа Fn.
| Ввод | Вывод |
|---|---|
| 1 | 1 |
| 5 | 8 |
Время: 1 сек.
Память: 16 Мб
Сложность: 17%
Последовательность чисел a1, a2, …, ai,… называется Фибоначчиевой, если для всех i ≥ 3 верно, что ai=ai-1+ai-2, то есть каждый член последовательности (начиная с третьего) равен сумме двух предыдущих.
Ясно, что, задавая различные числа a1 и a2, мы можем получать различные такие последовательности, и любая Фибоначчиева последовательность однозначно задается двумя своими первыми членами.
Будем решать обратную задачу. Вам будет дано число n и два члена последовательности: an и an+1. Вам нужно написать программу, которая по их значениям найдет a1 и a2.
Входной файл input.txt содержит число n и значения двух членов последовательности: an и an+1 (1 ≤ n ≤ 30, члены последовательности — целые числа, по модулю не превышающие 2×109).
В выходной файл output.txt выведите два числа — значения первого и второго членов этой последовательности.
| Ввод | Вывод |
|---|---|
| 4 3 5 | 1 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
Числа Фибоначчи строятся следующим образом: 1, 1, 2, 3, 5, …. В этой последовательности, начиная с третьего числа, каждый следующий член равен сумме двух предыдущих. Получаем, что, например, шестое число равно 8, а десятое - 55.
Требуется написать программу, которая определяет, является ли заданное число числом Фибоначчи.
Входной текстовый файл input.txt содержит одно натуральное число в диапазоне от 2 до 1200000000.
Выходной файл output.txt должен содержать в первой строке 1, если заданное число является числом Фибоначчи, и 0, иначе. В первом случае во вторую строку требуется вывести его порядковый номер.
| Ввод | Вывод |
|---|---|
| 8 | 1 6 |
| 10 | 0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 16%
Геннадий учится в сельской школе и мечтает стать агрономом. На уроке геометрии Геннадий познакомился с новой фигурой – прямоугольником. Освоив вычисление площади прямоугольника, Гена подумал о том, что квадратные поля гораздо удобнее, нежели прямоугольные. Поразмыслив еще немного, Гена столкнулся с интересной задачей: существует ли такое квадратное поле, у которого площадь в точности равна площади заданного поля прямоугольной формы, чтобы при этом длины сторон обеих полей были бы целыми числами?
Входной файл input.txt содержит целые числа a и b – длины сторон прямоугольника (1 < = a*b ≤ 1014).
В выходной файл output.txt выведите либо одно целое число c – длину стороны квадрата, либо 0, если квадрата с целочисленной длиной стороны не существует.
| Ввод | Вывод |
|---|---|
| 1 4 | 2 |
| 2 8 | 4 |
| 15 42 | 0 |
Время: 0,5 сек.
Память: 16 Мб
Сложность: 31%
Для игры в «Поле чудес» используется круглый барабан, разделенный на сектора, и стрелка. В каждом секторе записано некоторое число. В различных секторах может быть записано одно и то же число. Однажды ведущий игры решил изменить правила. Он сам стал вращать барабан и называть игроку (который барабана не видел) все числа подряд в том порядке, в котором на них указывала стрелка в процессе вращения барабана. Получилось так, что барабан сделал целое число оборотов, то есть последний сектор совпал с первым. После этого, ведущий задал участнику вопрос: какое наименьшее число секторов может быть на барабане? Требуется написать программу, отвечающую на этот вопрос ведущего.
В первой строке входного файла input.txt записано число N – количество чисел, которое назвал ведущий (2 ≤ N ≤ 30000). Во второй строке записано N чисел, на которые указывала стрелка в процессе вращения барабана. Первое число всегда совпадает с последним (в конце стрелка указывает на тот же сектор, что и в начале). Числа, записанные в секторах барабана – натуральные, не превышающие 32000.
В выходной файл output.txt необходимо вывести одно число – минимальное число секторов, которое может быть на барабане.
| Ввод | Вывод |
|---|---|
| 13 5 3 1 3 5 2 5 3 1 3 5 2 5 |
6 |
| 4 1 1 1 1 |
1 |
| 4 1 2 3 1 |
3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Во время военного похода на морского пехотинца Джо было возложено ответственное задание – развести костёр и поддерживать в нём огонь ровно m минут. Для этого у Джо есть спички и n поленьев, причём Джо известно точное время сгорания каждого полена.
Джо разжигает огонь в момент времени t = 0 и сразу бросает в него одно или несколько поленьев. Затем он должен подбрасывать в огонь новые поленья, не позволяя костру угаснуть (т.е. если последнее полено в костре догорает в момент времени t, то новое полено может быть брошено в огонь не позднее t – 1). Поленья, брошенные в огонь, загораются мгновенно. Одновременно Джо может бросить в огонь любое количество поленьев. Джо должен бросить в огонь все n поленьев.
Помогите Джо определить, сможет ли он подбрасывать поленья в огонь таким образом, чтобы костер горел ровно m минут.
Первая строка входного файла input.txt содержит целые числа n и m (1 ≤ n ≤ 100, 1 ≤ m ≤ 1000) – количество поленьев и время, в течение которого Джо должен поддерживать огонь в костре. Вторая строка входного файла содержит n целых чисел a1, a2, ..., an, где ai (2 ≤ ai ≤ 1000) – время сгорания i-ого полена в минутах.
В выходной файл output.txt выведите строку «yes», если Джо сможет поддерживать огонь в костре ровно m минут, и строку «no» в противном случае.
| Ввод | Вывод |
|---|---|
| 2 3 5 | yes |
| 2 5 3 9 |
no |
| 4 10 3 3 3 3 |
no |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Браконьер Петрович использует распространенный незаконный способ рыбалки с использованием рыболовной сети. Но проблема в том, что крупная рыба часто рвет сеть и приходится ее восстанавливать. Однажды Петрович задумался: какое максимальное количество повреждений может быть в рыболовной сети, таких, что сеть не будет разорвана на части? Вам предстоит помочь ему в вычислениях.
Сеть имеет прямоугольную форму размером M×N узлов, все смежные узлы соединены леской. Под разрывом будем понимать только единичный обрыв лески между двумя смежными узлами сети.
Входной файл input.txt содержит два целых числа M и N – размеры рыболовной сети (1 ≤ M, N ≤ 10 000).
| Ввод | Вывод |
|---|---|
| 2 2 | 1 |
| 2 3 | 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
В рождественский вечер на окошке стояло три цветочка, слева направо: герань, крокус и фиалка. Каждое утро Маша вытирала окошко и меняла местами стоящий справа цветок с центральным цветком. А Таня каждый вечер поливала цветочки и меняла местами левый и центральный цветок. Требуется определить порядок цветов ночью по прошествии K дней.
Во входном файле input.txt содержится натуральное число K – число дней (K ≤ 1000).
В выходной файл OUTPUT.TXT требуется вывести три английских буквы: «G», «C» и «V» (заглавные буквы без пробелов), описывающие порядок цветов на окошке по истечении K дней (слева направо). Обозначения: G – герань, C – крокус, V – фиалка.
| Ввод | Вывод |
|---|---|
| 1 | VGC |
| 5 | CVG |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Вместо того чтобы делать уроки, Вася смотрел футбольный матч и записывал счет, который показывался на табло, после каждого забитого гола. Например, у него могла получиться такая запись: 1:0, 1:1, 1:2, 2:2, 2:3. После этого он сложил все записанные числа: 1+0+1+1+1+2+2+2+2+3=15.
По сумме, получившейся у Васи, определите, сколько всего мячей было забито в матче.
В первой строке входного файла input.txt записано одно целое неотрицательное число, не превосходящее 1000 – сумма, полученная Васей.
В выходной файл output.txt выведите одно число – общее количество забитых мячей.
| Ввод | Вывод |
|---|---|
| 15 | 5 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Будем называть два числа дружными, если они состоят из одних и тех же цифр. Например, числа 1132 и 32321 являются дружными, а 12 и 123 – нет (в первом числе нет цифры 3). Требуется написать программу, которая определит, являются ли два заданных числа дружными.
Входной текстовый файл input.txt содержит в первой строке натуральное число K – количество тестов. Количество тестов не превышает 10. В следующих K строках содержатся по два целых числа A и B, разделенные одним пробелом (0 < A < 109, 0 < B < 109).
Выходной текстовый файл output.txt должен содержать K строк. Для каждого теста в отдельной строке надо выдать сообщение “YES”, если A и B являются дружными, или “NO”, если не являются. В сообщениях кавычки не печатать.
| Ввод | Вывод |
|---|---|
| 1 1132 32321 |
YES |
| 2 12 123 11 111 |
NO YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Легендарный учитель математики Юрий Петрович придумал забавную игру с числами. А именно, взяв произвольное целое число, он переводит его в двоичную систему счисления, получая некоторую последовательность из нулей и единиц, начинающуюся с единицы. (Например, десятичное число 1910 = 1*24+0*23+0*22+1*21+1*20 в двоичной системе запишется как 100112.) Затем учитель начинает сдвигать цифры полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо), выписывая образующиеся при этом последовательности из нулей и единиц в столбик — он подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. И, наконец, Юрий Петрович отыскивает максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 19 список последовательностей будет таким:
10011
11001
11100
01110
00111
10011
…
и результатом игры, следовательно, окажется число 1*24+1*23+1*22+0*21+0*20 = 28.
Поскольку придуманная игра с числами все больше занимает воображение учителя, отвлекая тем самым его от работы с ну очень одаренными школьниками, Вас просят написать программу, которая бы помогла Юрию Петровичу получать результат игры без утомительных ручных вычислений.
Входной файл input.txt содержит одно целое число N (0 ≤ N ≤ 32767).
Ваша программа должна вывести в выходной файл output.txt одно целое число, равное результату игры.
| Ввод | Вывод |
|---|---|
| 19 | 28 |
| 1212 | 1938 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Определим последовательность ai следующим образом: a1 = 1, an = an-1+ 3, если число n уже встречалось в последовательности a, и an = an-1 + 2, иначе. Нетрудно видеть, что первые 8 членов этой последовательности таковы: 1, 3, 6, 8, 10, 13, 15, 18.
Ваша задача вычислить an.
Входной файл input.txt содержит целое число n (1 ≤ n ≤ 105).
В выходной файл output.txt выведите an.
| Ввод | Вывод |
|---|---|
| 1 | 1 |
| 8 | 18 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Как-то раз Шрек решил посетить казино. Не будучи заядлым любителем азартных игр, Шрек обнаружил, что он не знает правил ни одной из игр, доступных в казино. Недолго думая, Шрек решил все-таки поиграть. Его взор привлекла игра с довольно незамысловатыми правилами.
На игровом столе лежат N карточек. На каждой карточке написано целое положительное число. Игра проходит между игроком и крупье. Карточки лежат на столе числами вниз. Игра заключается в том, что игрок открывает ровно N/2 карточек. Сумма всех чисел, написанных на карточках открытых игроком, называется “суммой игрока”. Следующим ходом крупье открывает оставшиеся N/2 карточек. Сумма всех чисел, написанных на карточках открытых крупье, называется “суммой крупье”. Выигрыш игрока определяется разностью чисел между “суммой игрока” и “суммой крупье”. Очевидно, что полученная разность может быть отрицательным числом. Это свидетельствует о том, что игрок проиграл и должен казино соответствующую сумму.
Все бы ничего, но Шрек обладает способностью видеть надписи сквозь бумагу любой плотности. Ваша задача определить максимальную сумму выигрыша, которую может получить Шрек с учетом того, что он видит все числа, написанные на карточках.
Первая строка входного файла input.txt содержит одно четное натуральное число N (2 ≤ N ≤ 100). Вторая строка входного файла содержит ровно N чисел Ai(1 ≤ Ai ≤ 106) – числа, написанные на игральных карточках. Все числа в строке разделяются одиночными пробелами, Ai – число, написанное на i-й карточке. Карточки нумеруются последовательно, начиная с единицы.
Единственная строка выходного файла output.txt должна содержать ровно одно целое число – максимальный выигрыш, который может получить Шрек с учетом своей уникальной способности видеть числа, написанные на карточках.
| Ввод | Вывод |
|---|---|
| 2 1 3 |
2 |
| 4 3 1 8 100 |
104 |
Время: 1 сек.
Память: 16 Мб
Сложность: 4%
В свободное время одноклассники Вася и Петя любят играть в различные логические игры: морской бой, крестики-нолики, шахматы, шашки и многое другое. Ребята уже испробовали и поиграли во всевозможные классические игры подобного рода, включая компьютерные. Однажды им захотелось сыграть во что-нибудь новое, но ничего подходящего найти не удалось. Тогда Петя придумал следующую игру «Угадайка»: Играют двое участников. Первый загадывает любое трехзначное число, такое что первая и последняя цифры отличаются друг от друга более чем на единицу. Далее загадавший число игрок переворачивает загаданное число, меняя первую и последнюю цифры местами, таким образом получая еще одно число. Затем из максимального из полученных двух чисел вычитается минимальное. Задача второго игрока – угадать по первой цифре полученного в результате вычитания числа само это число. Например, если Вася загадал число 487, то перестановкой первой и последней цифры он получит число 784. После чего ему придется вычесть из 784 число 487, в результате чего получится число 297, которое и должен отгадать Петя по указанной первой цифре «2», взятой из этого числа. Петя успевает лучше Васи по математике, поэтому практически всегда выигрывает в играх такого типа. Но в данном случае Петя схитрил и специально придумал такую игру, в которой он не проиграет Васе в любом случае. Дело в том, что придуманная Петей игра имеет выигрышную стратегию, которая заключается в следующем: искомое число всегда является трехзначным и вторая его цифра всегда равна девяти, а для получения значения последней достаточно отнять от девяти первую, т.е. в рассмотренном выше случае последняя цифра равна 9-2=7. Помогите Пете еще упростить процесс отгадывания числа по заданной его первой цифре, написав соответствующую программу.
В единственной строке входного файла input.txt задана единственная цифра К, соответствующая первой цифре полученного Васей в результате вычитания наименьшего загаданного Васей значения из наибольшего.
В выходной файл output.txt нужно вывести значение полученной Васей разности.
| Ввод | Вывод |
|---|---|
| 5 | 594 |
| 2 | 297 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Дима обнаружил у папы на столе специальный чертежный прибор, похожий на циркуль-измеритель. Измеритель отличается от обычного циркуля тем, что в обеих его ножках находятся иголки (у обычного циркуля в одной ножке находится иголка, а в другой – грифель).
Кроме измерителя Дима нашел на столе клетчатый лист бумаги, в углах некоторых клеток которого были нарисованы точки. Так как измеритель служит для измерения расстояний, то Дима решил измерить все попарные расстояния между всеми точками на листе бумаги.
Ваша задача - написать программу, которая по координатам точек определит, сколько различных расстояний встречается среди расстояний, которые измерил Дима.
Первая строка входного файла input.txt содержит число n – количество точек (2 ≤ n ≤ 50). Следующие n строк содержат по два целых числа – координаты точек. Координаты не превышают 104 по абсолютной величине.
На первой строке выходного файла output.txt выведите k – количество различных расстояний, которые измерил Дима. Следующие k строк должны содержать по одному вещественному числу – сами расстояния. Расстояния должны быть выведены в возрастающем порядке. Каждое число должно быть выведено с точностью не менее чем 10-9.
| Ввод | Вывод |
|---|---|
| 4 0 0 1 1 1 0 0 1 |
2 1.0 1.414213562373 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Одним из интересных объектов, изучаемых в теории игр, являются так называемые антагонистические игры двух лиц. Такие игры характеризуются множеством X стратегий первого игрока, множеством Y стратегий второго игрока и функцией выигрыша K(x, y) (x из X, y из Y). Если множества стратегий X и Y конечны, то такую игру принято называть матричной, так как функцию выигрыша K в этом случае удобно задавать матрицей.
Рассмотрим матричную игру, в которой X = {1,…,n}, Y = {1,…,m}. Матрицу выигрышей обозначим символом K. Нижним значением игры назовем число maxi=1..nminj=1..m Kij . Верхним значением игры назовем число minj=1..mmaxi=1..n Kij. Отметим также, что игры, у которых нижнее и верхнее значение совпадают, называются играми с седловой точкой.
Задана матрица выигрышей K для некоторой матричной игры. Найдите ее верхнее и нижнее значение.
Первая строка входного файла input.txt содержит целые числа n и m (1 ≤ n,m ≤ 100). Далее следуют n строк по m чисел в каждой. j-ое число i-ой строки равно Kij . Все Kij по модулю не превосходят 1000.
В выходной файл output.txt выведите нижнее и верхнее значение игры через пробел.
| Ввод | Вывод |
|---|---|
| 3 3 4 -1 -3 -2 1 3 0 2 -3 |
-2 2 |
| 3 4 -1 0 2 1 -2 0 1 0 2 1 -1 -2 |
-1 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Садовник посадил N деревьев в один ряд. После посадки деревьев садовнику нужно их покрасить. В его распоряжении есть краска трех цветов: белая, синяя и оранжевая. Сколько способов покраски деревьев есть у него, если никакие два соседних дерева нельзя красить в одинаковый цвет?
В единственной строке входного файла input.txt записано одно натуральное число - количество деревьев N (1 ≤ N ≤ 50).
В единственную строку выходного файла output.txt нужно вывести одно число - количество способов покраски.
| Ввод | Вывод |
|---|---|
| 3 | 12 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Ириска весит X грамм, мандарин – Y грамм, пряник – Z грамм.
Требуется написать программу, которая определит, сколько различных вариантов подарков весом ровно W грамм может сделать Дед Мороз.
В единственной строке входного файла input.txt содержится четыре целых числа X, Y, Z и W (1 ≤ X, Y, Z ≤ 100, 1 ≤ W ≤ 1000).
Выходной файл output.txt должен содержать одно целое число – количество вариантов подарков.
| Ввод | Вывод |
|---|---|
| 10 25 15 40 | 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Гномы свободно владеют системами счисления с разными основаниями и достигли они этого ежедневными тренировками. Именно поэтому каждое утро у гномов начинается с того, что они текущую календарную дату переводят в другую систему счисления. Ваше задание такое же: перевести заданную дату D/M/Y в систему счисления с основанием D+1.
Для обозначения цифр больших 9 используются большие английские буквы в алфавитном порядке.
Входной файл input.txt содержит строку, содержащую дату в формате D/M/Y в десятичной системе счисления (1 ≤ D ≤ 31, 1 ≤ M ≤ 12, 1 ≤ Y ≤ 9999).
В выходной файл output.txt выведите одну строку – дату в формате D/M/Y в системе счисления с основанием D+1.
| Ввод | Вывод |
|---|---|
| 1/10/2000 | 1/1010/11111010000 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Известно, что любое чётное число, большее 2, представимо в виде суммы 2 простых чисел, причём таких разложений может быть несколько. Впервые гипотезу о существовании данного разложения сформулировал математик Х. Гольдбах.
Требуется написать программу, производящую согласно утверждению Гольдбаха, разложение заданного чётного числа. Из всех пар простых чисел, сумма которых равна заданному числу, требуется найти пару, содержащую наименьшее простое число.
Входной файл input.txt содержит чётное число N (4 ≤ N ≤ 998).
В выходной файл output.txt необходимо вывести два простых числа, сумма которых равна числу N. Первым выводится наименьшее число.
| Ввод | Вывод |
|---|---|
| 6 | 3 3 |
| 992 | 73 919 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Гипотеза Гольдбаха гласит, что любое четное число большее двух представимо в виде суммы двух простых чисел. Она является одной из самых старых нерешенных задач математики. На март 2004 года, гипотеза Гольдбаха проверена для всех четных чисел, больших 2 и не превышающих 1017.
Ваша задача будет несколько более общей. Задано число x. Необходимо найти число способов представить его в виде суммы ровно двух простых чисел (представления, отличающиеся порядком слагаемых, следует считать одинаковыми).
Напомним, что простым называется натуральное число, большее единицы и делящееся только на единицу и на само себя.
Входной файл INPUT.TXT содержит натуральное число x (x ≤ 10000).
В выходной файл OUTPUT.TXT выведите ответ на задачу.
| Ввод | Вывод | Пояснение |
|---|---|---|
| 4 | 1 | 4=2+2 |
| 10 | 2 | 10=3+7=5+5 |
| 11 | 0 | 11 непредставимо |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Сотрудники завода по производству золотого песка из воздуха решили поправить свое финансовое положение. Они пробрались на склад завода, где хранился золотой песок трех видов. Один килограмм золотого песка первого вида они смогли бы продать за A1 рублей, второго вида – за A2 рублей, а третьего вида – за A3 рублей. Так получилось, что у сотрудников оказалось с собой только три емкости: первая была рассчитана на B1 килограмм груза, вторая на B2 килограмм, а третья на B3 килограмм. Им надо было заполнить полностью все емкости таким образом, чтобы получить как можно больше денег за весь песок. При заполнении емкостей нельзя смешивать песок разных видов, то есть, в одну емкость помещать более одного вида песка, и заполнять емкости песком так, чтобы один вид песка находился более чем в одной емкости.
Требуется написать программу, которая определяет, за какую сумму предприимчивые сотрудники смогут продать весь песок в случае наилучшего для себя заполнения емкостей песком.
В единственной строке входного файла input.txt записано 6 натуральных чисел A1, A2, A3, B1, B2, B3, записанных в одной строке через пробел. Все числа не превосходят 100.
В единственную строку выходного файла output.txt нужно вывести единственное целое число – сумму в рублях, которую смогут сотрудники заработать в случае наилучшего для себя заполнения емкостей песком.
| Ввод | Вывод |
|---|---|
| 1 2 3 3 2 1 | 14 |
Время: 1 сек.
Память: 16 Мб
Сложность: 4%
Из книги Джонатана Свифта мы знаем, что тот Гулливер посетил страну «Лилипутию», где живут лилипуты, окруженные вещами, животными и заводами небольшого размера. Сначала лилипуты боялись Гулливера, но позже они поняли, что такое соседство приносит им большую выгоду, и они стали помогать ему. Например, лилипуты делали кровать для Гулливера из своих маленьких матрацев, сшитых вместе. Лилипутам были известны размеры Гулливера. Довольно быстро они смогли просчитать количество матрацев, необходимых для шитья большого матраца. Но у них постоянно возникали сложности с их небольшим ростом и стеля постель, они иногда не могли сшить достаточно толстый матрац.
Входной файл input.txt содержит два целых числа, которые разделены пробелом: K – коэффициент, отражающий во сколько раз Гулливер больше лилипутов, и M – количество слоев матрацев (2 ≤ K, M ≤ 100).
В выходной файл output.txt выведите количество матрацев лилипутов, необходимых для построения матраца для Гулливера.
| Ввод | Вывод |
|---|---|
| 2 2 | 8 |
| 12 4 | 576 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Одного неформала выгнали с работы, и теперь ему надо как-то зарабатывать себе на жизнь. Поразмыслив, он решил, что сможет иметь очень неплохие деньги на продаже собственных волос. Известно, что пункты приема покупают волосы произвольной длины стоимостью С у.е. за каждый сантиметр. Так как волосяной рынок является очень динамичным, то цена одного сантиметра волос меняется каждый день как и курс валют. Неформал является очень хорошим бизнес-аналитиком. Он смог вычислить, какой будет цена одного сантиметра волос в каждый из ближайших N дней (для удобства пронумеруем дни в хронологическом порядке от 0 до N-1). Теперь он хочет определить, в какие из этих дней ему следует продавать волосы, чтобы по истечению всех N дней заработать максимальное количество денег. Заметим, что волосы у неформала растут только ночью и вырастают на 1 сантиметр за ночь. Следует также учесть, что до 0-го дня неформал с горя подстригся наголо и к 0-му дню длина его волос составляла 1 сантиметр.
В первой строке входного файла INPUT.TXT записано целое число N (0 < N ≤ 100). Во второй строке через пробел заданы N натуральных чисел, не превосходящих 100, соответствующие стоимости C[i] 1 сантиметра волос за каждый i-й день.
В единственную строку выходного файла OUTPUT.TXT нужно вывести максимальную денежную сумму, которую может заработать неформал за N дней.
| Ввод | Вывод |
|---|---|
| 5 73 31 96 24 46 |
380 |
| 10 1 2 3 4 5 6 7 8 9 10 |
100 |
| 10 10 9 8 7 6 5 4 3 2 1 |
55 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
В связи с особенностями линии связи, используемой для передачи сообщений из пункта A в пункт B, каждый бит принятого сообщения с вероятностью 0.001 содержит ошибку.
Из пункта A в пункт B было послано одно из n сообщений m1, m2, ..., mn. В пункте B было принято сообщение s.
Ваша задача заключается в определении наиболее вероятного исходного сообщения. Очевидно, что оно будет одним из тех сообщений, расстояние Хэмминга между которым и строкой s минимально.
Расстоянием Хэмминга двух строк a и b одинаковой длины называется количество позиций, в которых эти строки различаются (количество элементов в множестве {i | 1 ≤ i ≤ |a|, ai ≠ bi }).
Первая строка входного файла input.txt содержит s — принятое сообщение. Вторая строка содержит целое число n — количество сообщений, которые могли быть отправлены. Следующие n строк содержат mi — эти сообщения. Длины всех сообщений равны (|s| = |m1| = |m2| = ... = |mn|). Сообщения непустые, состоят только из символов 0 и 1. Размер входного файла не превосходит 60 Кб.
В первую строку выходного файла output.txt выведите k — количество сообщений, на которых достигается минимум расстояния Хэмминга. Во вторую строку выведите в порядке возрастания k чисел — номера этих сообщений.
| Ввод | Вывод |
|---|---|
| 010101 3 110011 011001 000111 |
2 2 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 15%
Петя и Маша пришли в зоопарк. Больше всего Пете понравились цапли. Он был поражен их способностью спать на одной ноге. В вольере находятся несколько цапель. Некоторые из них стоят на двух ногах, некоторые — на одной. Когда цапля стоит на одной ноге, то другую ее ногу не видно. Петя пересчитал видимые ноги всех цапель, и у него получилось число a. Через несколько минут к вольеру подошла Маша. За это время некоторые цапли могли поменять позу, поэтому Петя предложил ей заново пересчитать видимые ноги цапель. Когда Маша это сделала, у нее получилось число b. Выйдя из зоопарка, Петя с Машей заинтересовались, сколько же всего цапель было в вольере. Вскоре ребята поняли, что однозначно определить это число можно не всегда. Теперь они хотят понять, какое минимальное и какое максимальное количество цапель могло быть в вольере.
Требуется написать программу, которая по заданным числам a и b выведет минимальное и максимальное количество цапель, которое могло быть в вольере.
Входной файл input.txt содержит два целых числа a и b, разделенных ровно одним пробелом (1 ≤ a ≤ 109, 1 ≤ b ≤ 109).
В выходной файл output.txt выведите два целых числа, разделенных пробелом — минимальное и максимальное число цапель, которое могло быть в вольере. Гарантируется, что хотя бы одно количество цапель соответствует условию задачи.
| Ввод | Вывод |
|---|---|
| 3 4 | 2 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 21%
В соревнованиях по хоккею участвует N команд. Сколько существует вариантов распределения комплектов золотых, серебряных и бронзовых медалей, если одно призовое место может занять только одна команда?
Входной файл input.txt содержит целое число N (1 ≤ N ≤ 104) – количество команд.
В выходной файл output.txt выведите единственное число – искомое количество способов награждения участников.
| Ввод | Вывод |
|---|---|
| 3 | 6 |
| 20 | 6840 |
Время: 1 сек.
Память: 16 Мб
Сложность: 21%
Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из школы, домой. Для того, чтобы немного сэкономить, он покупает электронную смарт-карту на X поездок. Когда он хочет зайти в метро, он прикладывает карту к турникету. Если на карте осталось ненулевое количество поездок, то турникет пропускает Васю и списывает с карты одну поездку. Если же на карте не осталось поездок, то турникет не пропускает Васю, и он (Вася) вынужден купить на этой же станции новую карту на X поездок и вновь пройти через турникет.
Вася заметил, что в связи с тем, что утром метро переполнено, покупать новую карту утром накладно по времени, и он может опоздать в школу. В связи с этим он хочет понять: будет ли такой день, что с утра, поехав в школу, Вася обнаружит у себя на карточке ноль поездок.
Вася больше никуда на метро не ездит и поэтому заходит в метро только на станции около дома и на станции около школы.
Во входном файле input.txt содержится ровно 2 строки. В первой содержится слово «School» или «Home» в зависимости от того, где первый раз Вася купил карточку на X поездок. Во второй строке содержится натуральное число X, 1 ≤ X ≤ 1000.
В выходной файл output.txt следует вывести «Yes», если будет такой день, что дома утром у Васи на карточке окажется ноль поездок и «No» в противном случае.
| Ввод | Вывод |
|---|---|
| Home 1 |
Yes |
| School 2 |
No |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Петя успевает по математике лучше всех в классе, поэтому учитель задал ему сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти где в заданной последовательности находятся максимальный и минимальный элемент и вычислить произведение чисел, расположенных в этой последовательности между ними. Так же известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз и не являются соседними. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А Вам слабо?
В первой строке входного файла input.txt записано единственное число N – количество элементов массива. Вторая строка содержит N целых чисел, представляющих заданный массив. Все элементы массива разделены пробелом. Каждое из чисел во входном файле, в том числе и N, не превышает 102 по абсолютной величине.
В единственную строку выходного файла output.txt нужно вывести два числа, разделенных пробелом: сумму положительных элементов и произведение чисел, расположенных между минимальным и максимальным элементами. Значения суммы и произведения не превышают по модулю 3*104.
| Ввод | Вывод |
|---|---|
| 5 -7 5 -1 3 9 |
17 -15 |
| 8 3 14 -9 4 -5 1 -12 4 |
26 180 |
| 10 -5 1 2 3 4 5 6 7 8 -3 |
36 5040 |
Время: 1 сек.
Память: 16 Мб
Сложность: 23%
Все любят сладости и, в частности, мед. Винни-Пух тоже его любит. Каждый день он шел лакомиться медом, а по дороге домой заходил в гости к Кролику. Но приближалась зима, и Винни-Пух начал задумываться о запасах. Он решил в течении N дней не лакомиться медом, а собирать полный горшочек объемом V горстей и перекладывать его в бочку. В первый день своего собирательства он так и сделал. Терпения хватило на один день. А на следующий день он не смог устоять и по дороге домой съел K горстей меда из горшочка. В каждый следующий день из полного горшочка он съедал на K горстей больше.
Необходимо определить объем меда, собранного Винни-Пухом на зиму.
Входной файл input.txt содержит три натуральных числа N (N ≤ 300), V (V ≤ 107) и K (K ≤ 1000). K – объем, на который Винни-Пух с каждым днем съедал больше меда.
В выходной файл OUTPUT.TXT выведите два значения через пробел. Сначала идет строка «NO», если случилось, что Винни-Пух пришел к Кролику с пустым горшочком и «YES» в противном случае. Второе значение – объем меда, заготовленного Винни-Пухом на зиму.
| Ввод | Вывод |
|---|---|
| 15 100 10 | NO 550 |
| 10 10 1 | YES 55 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Заданы две клетки шахматной доски. Требуется определить, возможно ли попасть из одной клетки в другую одним ходом шахматного коня, а если нет, то следует выяснить, возможно ли попасть с помощью двух ходов.
Входной файл input.txt содержит координаты двух клеток в общепринятом формате: каждая координата записывается как английская строчная буква и цифра, координаты отделены друг от друга запятой и пробелом.
Выходной файл output.txt должен содержать цифру «1», если возможно из одной клетки в другую попасть за 1 ход, либо цифру «2», если попасть можно за 2 хода, либо «NO», если одна клетка недостижима из другой ни за 1 ни за 2 хода.
| Ввод | Вывод |
|---|---|
| a1, h8 | NO |
| a1, b3 | 1 |
| a1, d4 | 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Иван Иванович любит ходить на скачки, надеясь на них заработать кругленькую сумму. Ему приглянулась лошадь с номером K, и он решил проверить, сможет ли она выиграть у всех остальных лошадей. Иван Иванович раздобыл информацию, в которой для некоторых пар лошадей сообщается, какая из этих лошадей быстрее. Также он узнал, что у всех лошадей разные скорости.
Требуется написать программу, которая поможет Ивану Ивановичу точно определить может ли выиграть выбранная им лошадь.
Входной файл INPUT.TXT содержит в первой строке два целых числа N (1 ≤ N ≤ 100) и K (1 ≤ K ≤ N), где N – количество лошадей, принимающих участие в скачках, K – номер лошади, на которую хочет сделать ставку Иван Иванович. Следующие строки содержат по два числа X и Y (1 ≤ X, Y ≤ N), обозначающие, что лошадь с номером X быстрее лошади с номером Y. Пары X и Y не повторяются. Набор данных завершается строкой, содержащей единственный ноль. Эту строку обрабатывать не надо.
Гарантируется, что информация, раздобытая Иваном Ивановичем, корректна.
Выходной файл OUTPUT.TXT должен содержать слово «Yes», если Иван Иванович уверен в своем выигрыше и «No» в противном случае.
| Ввод | Вывод |
|---|---|
| 3 1 1 2 1 3 0 |
Yes |
| 3 2 2 3 0 |
No |
| 4 2 3 1 2 3 0 |
No |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Сезон охоты очень не долог, и поэтому оставшуюся часть года заядлые охотники развлекают себя тем, что стреляют по мишеням в тире. Тир представляет собой плоскость, на которой расставлены мишени. Размерами мишеней можно пренебречь и считать их точками с координатами (x, y). Также известно, что мишени сделаны из картона, поэтому за один выстрел можно поразить сразу все мишени, стоящие на линии выстрела. В начале координат стоит охотник и у него остался последний патрон. Охотник хочет использовать его эффективно – то есть за один выстрел поразить как можно больше целей. Помогите ему в этом.
В первой строке входного файла input.txt находится натуральное число N (N ≤ 100) – количество мишеней в тире. Далее следует N строк – описание мишеней. В (i+1)-й строке находится два целых числа x и y (-100 ≤ x, y ≤ 100) – координаты i-й мишени. Не существует двух мишеней, стоящих в одной точке, и никакая мишень не стоит в начале координат.
В выходной файл output.txt выведите максимальное количество мишеней, которое может подстрелить охотник за один выстрел.
| Ввод | Вывод |
|---|---|
| 1 1 1 |
1 |
| 2 1 1 2 2 |
2 |
| 3 1 0 2 0 0 1 |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 21%
Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и только в конце семестра появляется в университете и сдает ”хвосты”. Его заветная мечта: найти такой день, когда можно будет сдать сразу все долги. У него есть расписание работы преподавателей, из которого точно известно, с какого и по какой день месяца каждый преподаватель ежедневно будет доступен.
Помогите Валере написать программу, которая по расписанию будет определять, сможет ли Валера сдать все долги за один день или нет.
В первой строке входного файла input.txt содержится натуральное число N – количество предметов, которые нужно сдать Валере (N ≤ 100). Далее идет N строк, каждая из которых состоит из двух чисел A и B, задающих отрезок работы очередного преподавателя (1 ≤ A ≤ B ≤ 31).
В выходной файл output.txt выведите «YES», если возможно встретить всех преподавателей за один день, или «NO», если это сделать невозможно.
| Ввод | Вывод |
|---|---|
| 1 1 2 |
YES |
| 2 1 2 3 4 |
NO |
| 3 1 8 3 5 4 9 |
YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 18%
Цена проезда в автобусах нашего города — один рубль. Однако, не все так просто — каждый взрослый пассажир имеет право провезти бесплатно не более одного ребенка. Это значит, что взрослый пассажир, который провозит с собой k (k > 0) детей, платит всего k рублей: за один билет для себя и за (k - 1) билетов для своих детей. Также взрослый может ехать без детей, в этом случае он платит всего один рубль. Известно, что дети не могут проезжать в автобусе без сопровождения взрослых.
Помогите посчитать минимальную и максимальную стоимость проезда в рублях, которую могли заплатить пассажиры автобуса.
Входной файл input.txt содержит два целых числа n и m (0 ≤ n, m ≤ 105) — количество взрослых и количество детей в автобусе, соответственно.
В выходной файл output.txt выведите через пробел два числа — минимальную и максимальную возможную стоимость проезда, если поездка возможна, в противном случае следует вывести «Impossible» (без кавычек).
| Ввод | Вывод |
|---|---|
| 1 2 | 2 2 |
| 0 5 | Impossible |
| 2 2 | 2 3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 34%
Сторонники языков Java и C++ часто спорят о том, какой язык лучше для решения олимпиадных задач. Одни говорят, что в Java есть масса полезных библиотек для работы со строками, хорошо реализованы механизмы чтения и вывода данных, а так же радует встроенные возможности для реализации длинной арифметики. С другой стороны, С++ является классическим языком, скорость выполнения программ благодаря существующим компиляторам (например, Intel Compiler 10.0) гораздо выше, чем у Java.
Но сейчас нас интересует лишь небольшие отличия, а именно соглашения, которыми пользуются программисты при описании имен переменных в Java и C++. Известно, что для понимания значений переменных часто используют английские слова или даже целые предложения, описывающие суть переменных, содержащих те или иные значения. Приведем ниже правила описания переменных, которыми руководствуются программисты, реализующие программы на Java и C++.
В языке Java принято первое слово, входящее в название переменной записывать с маленькой английской буквы, следующее слово идет с большой буквы (только первая буква слова большая), слова не имеют разделителей и состоят только из английских букв. Например, правильные записи переменных в Java могут выглядеть следующим образом: javaIdentifier, longAndMnemonicIdentifier, name, nEERC.
В языке C++ для описания переменных используются только маленькие английские символы и символ «_», который отделяет непустые слова друг от друга. Примеры: java_identifier, long_and_mnemonic_identifier, name, n_e_e_r_c.
Вам требуется написать программу, которая преобразует переменную, записанную на одном языке в формат другого языка.
Во входном файле INPUT.TXT задано наименование переменной длиной от 1 до 100 символов, в котором могут встречаться только заглавные и строчные буквы английского алфавита, а также символ подчёркивания.
В выходной файл OUTPUT.TXT требуется вывести аналог имени переменной в другом языке. Т.е. если переменная представлена в формате Java, то следует перевести в формат C++ и наоборот. В том случае, когда имя переменной не соответствует ни одному из вышеописанных языков, следует вывести «Error!»
| Ввод | Вывод |
|---|---|
| long_and_mnemonic_identifier | longAndMnemonicIdentifier |
| anotherExample | another_example |
| i | i |
| bad_Style | Error! |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Кузнечик Тёма очень любит прыгать по полянке, на которой он живет. Но однажды беда обрушилась на его голову. На его полянке поселилась злобная лягушка, которая была бы не против полакомиться кузнечиком Тёмой. Однако Тёма решил не унывать и все-таки продолжать прыгать и резвиться на полянке. Однако теперь ему надо делать это весьма осторожно. Для этого он хочет составить план своего путешествия.
Тёма хочет посетить точки A1=(x1, y1), A2=(x2, y2), ..., An=(xn, yn) (можно считать, что изначально он находится в точке A1, затем прыгает в точку A2, потом в A3 и т.д.). Так же ему известно, что лягушка живет в точке B=(x, y) и имеет длину языка L. Таким образом, если после приземления Тёма оказывается на расстоянии не более L от точки B, то лягушка его съест, то есть лягушка может съесть Тёму только, когда он находится на земле. Во время полета съесть Тёму лягушка не может.
Ваша задача помочь Тёме определить, будет ли он съеден лягушкой или нет.
В первой строке входного файла input.txt записано целое число N (1 ≤ N ≤ 105), координаты точки B и число L (0 ≤ L ≤ 5000). В следующих N строках записаны координаты точек Ai. Все координаты – это целые числа по модулю не превосходящие 104.
В выходной файл output.txt выведите «Yes», если кузнечик успешно завершит свое путешествие в точке An и не будет съеден в ней. Иначе выведите номер точки, после приземления в которую Тёму съест лягушка. Если Тёма может быть съеден лягушкой в нескольких точках, выведите точку, заданную раньше во входном файле (лягушка, разумеется, использует свой первый шанс, чтобы съесть кузнечика).
| Ввод | Вывод |
|---|---|
| 3 0 0 1 2 0 1 1 0 1 |
3 |
| 2 0 0 100 1 1 2 2 |
1 |
| 3 0 0 1 1 1 2 2 3 3 |
Yes |
Время: 3 сек.
Память: 16 Мб
Сложность: 25%
Переворотом числа X назовем число, в котором все цифры числа X стоят в обратном порядке. Например, переворотом числа 6372 является число 2736, а числа 7800 - 87. Назовем K-удивительным такое число, которое в сумме со своим переворотом дает число K.
Например, у числа 222 имеется всего два K-удивительных числа: 111 и 210, а у числа 1050 имеется девять K-удивительных числа: 129, 228, 327, 426, 525, 624, 723, 822, 921.
Требуется написать программу, которая по заданному K определит количество K-удивительных чисел.
Входной файл input.txt содержит одно натуральное число K (1 ≤ K ≤ 106).
Выходной файл output.txt должен содержать одно число - количество K-удивительных чисел.
| Ввод | Вывод |
|---|---|
| 222 | 2 |
| 1050 | 9 |
Время: 1 сек.
Память: 16 Мб
Сложность: 11%
Для данной буквы английского алфавита нужно вывести справа стоящую букву на стандартной клавиатуре. При этом клавиатура замкнута, т.е. справа от буквы «p» стоит буква «a», от буквы «l» стоит буква «z», а от буквы «m» — буква «q».
Первая строка входного файла input.txt содержит один символ — маленькую букву английского алфавита.
В выходной файл output.txt следует вывести букву стоящую справа от заданной буквы, с учетом замкнутости клавиатуры.
| Ввод | Вывод |
|---|---|
| q | w |
| t | y |
| m | q |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Всем известно, что со временем клавиатура изнашивается, и клавиши на ней начинают залипать. Конечно, некоторое время такую клавиатуру еще можно использовать, но для нажатий клавиш приходиться использовать большую силу.
При изготовлении клавиатуры изначально для каждой клавиши задается количество нажатий, которое она должна выдерживать. Если знать эти величины для используемой клавиатуры, то для определенной последовательности нажатых клавиш можно определить, какие клавиши в процессе их использования сломаются, а какие – нет.
Требуется написать программу, определяющую, какие клавиши сломаются в процессе заданного варианта эксплуатации клавиатуры.
Первая строка входного файла input.txt содержит целое число N (1 ≤ N ≤ 100) – количество клавиш на клавиатуре. Вторая строка содержит n целых чисел – с1, с2, … , сN, где сi (1 ≤ сi ≤ 100000) – количество нажатий, выдерживаемых i-ой клавишей. Третья строка содержит целое число K (1 ≤ K ≤ 100000) – общее количество нажатий клавиш, и последняя строка содержит K целых чисел pj (1 ≤ pj ≤ N) – последовательность нажатых клавиш.
В выходной файл output.txt необходимо вывести N строк, содержащих информацию об исправности клавиш. Если i-ая клавиша сломалась, то i-ая строка должна содержать слово "yes" (без кавычек), если же клавиша работоспособна – слово "no".
| Ввод | Вывод |
|---|---|
| 5 1 50 3 4 3 16 1 2 3 4 5 1 3 3 4 5 5 5 5 5 4 5 | yes no no no yes |
Время: 1 сек.
Память: 16 Мб
Сложность: 14%
Всем известно, что многие олимпиадные задачи начинаются со слов «Всем известно». Но мало кто знает, что начинающему программисту Паше такие задачи меньше всего нравятся. Потому что обычно после слов «всем известно» описывается такой факт, о котором он даже не догадывался. После очередной подобной задачи Паша решил проверить, а действительно ли всем известно, что сумма первых N нечетных чисел равняется N2.
Для этого Паша провел опрос всех людей, попавшихся ему под руку в известной социальной сети. Результаты опроса он записал в текстовый файл. Он ставил цифру один, если человеку был действительно известен данный факт, в противном случае в файл записывался нуль. Все было хорошо, пока Паша не открыл файл и не ужаснулся, увидев длинную последовательность из единичек. Как же он теперь будет искать среди них нули?
Уже всем известно, что Паша – начинающий программист, поэтому для обработки результатов исследования он обратился к вам за помощью.
Входной файл input.txt содержит непустую последовательность из нулей и единиц. Длина последовательности не превышает 104.
В выходной файл output.txt выведите слово «YES», если факт был известен всем опрошенным людям, и слово "NO" в противном случае.
| Ввод | Вывод |
|---|---|
| 11111101010011 | NO |
| 11 | YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Важным понятием теории формальных грамматик и автоматов является формальный язык. Неформально его можно определить как некоторое множество слов, где под словом понимается некоторая строка из символов.
В этой задаче необходимо проверить, принадлежит ли данное слово языку {0n1n2n, n ≥ 1}. В этот язык входят те и только те слова, которые имеют такую структуру: в них нулей столько же, сколько единиц, а единиц - столько же, сколько и двоек. При этом любой ноль находится ближе к началу слова, чем любая единица, а любая единица находится ближе к началу слова, чем любая двойка. Например, слово 001122 принадлежит этому языку, а слово 0000111122220 - не принадлежит.
Первая строка входного файла input.txt содержит целое положительное число n (n ≤ 10) – количество слов, которые надо проанализировать. Далее идут n строк, каждая из которых содержит по одному слову. Слова имеют длину не более тридцати тысяч символов и состоят только из нулей, единиц и двоек. Каждое из слов состоит хотя бы из одного символа.
Выходной файл output.txt должен содержать ровно n строк. Для каждого слова из входного файла выведите по одной строке, содержащей слово YES, если оно принадлежит указанному выше языку, и NO - иначе.
| Ввод | Вывод |
|---|---|
| 3 001122 00011122222 000111222 |
YES NO YES |
| 2 0000111122220 012 |
NO YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 21%
Требуется написать программу, которая находит цифру, на которую оканчивается число AB.
Входной файл input.txt состоит из единственной строки, содержащей два целых числа A и B, разделенных пробелом (1 ≤ A,B ≤ 10000).
В единственную строку выходного файла output.txt нужно вывести цифру, на которую оканчивается AB.
| Ввод | Вывод |
|---|---|
| 2 2 | 4 |
| 3 7 | 7 |
| 24 9 | 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 19%
Требуется написать программу, определяющую наименьшее общее кратное (НОК) чисел a и b.
В единственной строке входного файла input.txt записаны два натуральных числа А и В через пробел, не превышающих 46340.
В единственную строку выходного файла output.txt нужно вывести одно целое число — НОК чисел А и В.
| Ввод | Вывод |
|---|---|
| 36 27 | 108 |
| 39 65 | 195 |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
В теории формальных грамматик и автоматов (ТФГиА) важную роль играют так называемые контекстно-свободные грамматики (КС-грамматики). КС-грамматикой будем называть четверку, состоящую из множества N нетерминальных символов, множества T терминальных символов, множества P правил (продукций) и начального символа S, принадлежащего множеству N.
Каждая продукция p из P имеет форму A –> a, где A нетерминальный символ (A из N), а a – строка, состоящая из терминальных и нетерминальных символов. Процесс вывода слова начинается со строки, содержащей только начальный символ S. После этого на каждом шаге один из нетерминальных символов, входящих в текущую строку, заменяется на правую часть одной из продукций, в которой он является левой частью. Если после такой операции получается строка, содержащая только терминальные символы, то процесс вывода заканчивается.
Во многих теоретических задачах удобно рассматривать так называемые нормальные формы грамматик. Процесс приведения грамматики к нормальной форме часто начинается с устранения левой рекурсии. В этой задаче мы будем рассматривать только ее частный случай, называемый непосредственной левой рекурсией. Говорят, что правило вывода A –> R содержит непосредственную левую рекурсию, если первым символом строки R является A.
Задана КС-грамматика. Требуется найти количество правил, содержащих непосредственную левую рекурсию.
Первая строка входного файла input.txt содержит количество n (1 ≤ n ≤ 1000) правил в грамматике. Каждая из последующих n строк содержит по одному правилу. Нетерминальные символы обозначаются заглавными буквами английского алфавита, терминальные - строчными. Левая часть продукции отделяется от правой символами –>. Правая часть продукции имеет длину от 1 до 30 символов.
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 3 S->Sabc S->A A->AA |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Вася хочет отправить Пете письмо на листе шириной K. Он хочет распечатать на нем текст, состоящий из N строк. Необходимо изменить количество ведущих и концевых пробелов так, чтобы строки оказались посередине листа, и их длина стала равна K. Вася считает, что строка находится посередине листа, если количество ведущих пробелов не превосходит количества концевых пробелов и, если при сдвиге строки на один символ вправо (т.е. при добавлении одного пробела в начало строки), указанное свойство нарушается.
Первая строка входного файла input.txt содержит два целых числа K и N (1 ≤ K ≤ 100, 1 ≤ N ≤ 1000). Следующие N строк содержат текст Васиного письма в однобайтовой кодировке (символы с кодами от 32 до 255). Каждая строка письма содержит хотя бы один символ, отличный от пробела. Длина каждой строки во входном файле не превосходит 100.
Если Вася сможет написать письмо, удовлетворяющее всем его требованиям, то в выходной файл output.txt выведите отформатированный текст письма в той же кодировке, иначе, выведите фразу “Impossible.” (без кавычек).
| Ввод | Вывод |
|---|---|
| 20 3 ++Привет!++ +Напиши+мне.++ ++++Пока+=)+ |
++++++Привет!+++++++ ++++Напиши+мне.+++++ ++++++Пока+=)+++++++ |
| 5 1 Привет. |
Impossible. |
В приведенных примерах для большей наглядности пробелы заменены на плюсы!
================================================ FILE: lexicographic_order_numbers/LexicographicOrderNumbers.java ================================================ package lexicographic_order_numbers; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class LexicographicOrderNumbers { public static void main(String[] args) throws IOException { String[] numbers = new Scanner(new FileReader("input.txt")).nextLine().split(" "); String n = numbers[0]; String k = numbers[1]; ArrayListВремя: 1 сек.
Память: 16 Мб
Сложность: 31%
Натуральные числа от 1 до N упорядочены лексикографически. Например, для N=25 результат этого упорядочения будет таким: 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 3, 4, 5, 6, 7, 8, 9.
Требуется написать программу, которая определит, на каком месте оказалось число K.
Входной файл input.txt содержит два натуральных числа N и K, записанных через пробел (1 ≤ K ≤ N ≤ 104).
Выходной файл output.txt должен содержать одно натуральное число – номер места, на котором оказалось число K.
| Ввод | Вывод |
|---|---|
| 25 17 | 9 |
Время: 1 сек.
Память: 16 Мб
Сложность: 22%
Лиса Алиса и кот Базилио вырастили денежное дерево. И выросли на нем трехрублевые и пятирублевые золотые монеты. Лиса Алиса себе взяла трехрублевые монеты, а коту Базилио отдала пятирублевые монеты. Посетовав на свою скромность, она предложила впредь рассчитываться за покупки вместе, деньги давать без сдачи и минимальным числом монет. Известно, что они сделали покупку стоимостью N рублей, при этом они рассчитались без сдачи.
Вам следует написать программу, которая определяет: сколько монет внес кот Базилио, и сколько монет внесла лиса Алиса.
Во входном файле input.txt записано одно натуральное число N – стоимость покупки в рублях (7 < N < 1000).
В выходной output.txt выведите два целых числа через пробел: число монет, которые отдал кот Базилио и число монет, которые отдала лиса Алиса.
| Ввод | Вывод |
|---|---|
| 8 | 1 1 |
| 11 | 1 2 |
| 15 | 3 0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Студент Василий к концу семестра решил выяснить, какие предметы ему в этом семестре преподавались. Полный список предметов есть в его записях, но при их просмотре возникли две серьезные трудности. Во-первых, некоторые предметы упоминаются в этих записях более одного раза. Во-вторых, что еще хуже, из-за постоянной спешки Василий часто использует сокращения. Сокращает он довольно просто – отбрасывает несколько последних букв слова. Так, предмет “algebra” в записях может быть обозначен как “algeb”, “algebr” и “alg” (но не как “alg-ra”). Создайте для Василия программу, которая по его записям определяет, сколько предметов у него преподавалось в этом семестре.
Первая строка входного файла INPUT.TXT содержит число N – количество записей в списке Василия (1 ≤ N ≤ 10 000). Далее идет N строк, каждая из которых содержит строку символов длиной M (2 ≤ M ≤ 20). Строки состоят исключительно из английских символов в нижнем регистре и знаков подчеркивания ('_'). Гарантируется, что входные данные позволяют однозначно определить количество преподававшихся в семестре предметов.
В выходной файл OUTPUT.TXT выведите количество предметов, которые преподавались в семестре.
| Ввод | Вывод |
|---|---|
| 3 algebra algeb history |
2 |
| 4 algebr alg algebra algeb |
1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Программист Саша участвует в создании блог-сервиса Jивой Jурнал. Планируется, что этот сервис будет предоставлять гораздо больше возможностей, чем известный всем LiveJournal. В настоящее же время проблему составляет реализация всех базовых возможностей LiveJournal'а. Одной из таких возможностей является поддержка списков друзей для пользователей.
Заданы: список пользователей, являющихся друзьями данного пользователя, и список пользователей, у которых данный пользователь содержится в списке друзей.
Необходимо получить список друзей данного пользователя (Friends), список его взаимных друзей (Mutual Friends), и список тех пользователей, у кого данный пользователь содержится в списке друзей, но которые не являются его взаимными друзьями (Also Friend of).
Первая строка входного файла input.txt содержит число n (0 ≤ n ≤ 200) друзей данного пользователя. Последующие n строк содержат каждая по одному имени пользователя, который является другом данного. (n + 2)-ая строка содержит число m (0 ≤ m ≤ 200) пользователей, у которых данный содержится в списке друзей. Далее заданы имена пользователей, у которых данный находится в списке друзей. Эти пользователи заданы в том же формате, что и друзья данного.
Имена пользователей - строки длиной от 1 до 20 символов, содержащие только строчные буквы английского алфавита и символы тире ("-"). Каждый пользователь указан не более одного раза в каждом из списков.
В выходной файл output.txt следует вывести список друзей данного пользователя (Friends), список его взаимных друзей (Mutual Friends), и список тех пользователей, у кого данный пользователь содержится в списке друзей, но которые не являются его взаимными друзьями (Also Friend of). В каждом списке пользователи должны быть отсортированы по алфавиту. Следуйте формату, приведенному в примерах.
| Ввод | Вывод |
|---|---|
| 3 vasya-pupkin bill-hates ivan-ivanov 2 vasya-pupkin destroyer |
Friends: bill-hates, ivan-ivanov, vasya-pupkin Mutual Friends: vasya-pupkin Also Friend of: destroyer |
| 0 0 |
Friends: Mutual Friends: Also Friend of: |
Время: 1 сек.
Память: 16 Мб
Сложность: 12%
Вы пользуетесь общественным транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют такой билет с шестизначным номером, где сумма первых трех цифр равна сумме последних трех. Т.е. билет с номером 385916 – счастливый, т.к. 3+8+5=9+1+6. Вам требуется написать программу, которая проверяет счастливость билета.
В единственной строке входного файла input.txt записано одно целое число N (0 ≤ N < 106).
В выходной файл output.txt нужно вывести «YES», если билет с номером N счастливый и «NO» в противном случае.
| Ввод | Вывод |
|---|---|
| 385916 | YES |
| 123456 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Билет называется счастливым, если его можно разрезать прямой линией между цифр на две части таким образом, что оказавшиеся на них числа имеют одинаковые цифровые корни. Чтобы вычислить цифровой корень числа, его цифры складывают, если в результате получится число большее или равное 10, то цифры складывают снова и так далее, пока не получится число от 0 до 9 – это и есть цифровой корень. Например, билет с номером 0015420 является счастливым, так как разрезав его на части с числами 0015 и 420 имеем у этих чисел одинаковые цифровые корни.
Требуется написать программу, которая определит, является ли счастливым билет с заданным номером.
Входной файл input.txt содержит номер счастливого билета. Номер может начитаться с нулей и содержит от 1 до 100 цифр.
В выходной текстовый файл output.txt выведите «YES», если билет счастливый и «NO» иначе.
| Ввод | Вывод |
|---|---|
| 0015420 | YES |
| 00100 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 17%
Система улиц Нью-Йоркского района Манхеттен весьма интересна. В Манхеттене есть n улиц, идущие с запада на восток (авеню), и m улиц, идущие с севера на юг (просто улицы). Ширина каждого авеню и каждой улицы равна d метров, а длина – k метров. При этом каждая улица пересекает каждый авеню и не имеет общих точек с другими улицами, а каждый авеню пересекает каждую улицу и не имеет общих точек с другими авеню.
Разумеется, все авеню и улицы имеют асфальтовое покрытие. Дорожно-ремонтные службы интересуются: сколько квадратных метров асфальта уложено на все авеню и улицы. На перекрестках, без сомнения, асфальт уложен в один слой.
Напишите программу, вычисляющую ответ на их вопрос.
Входной файл input.txt содержит четыре натуральных числа n, m, d, k (1 ≤ n, m, d, k ≤ 109, k > m∙d, k > n∙d).
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 1 1 5 10 | 75 |
| 100 10 23 4560 | 11007800 |
Время: 1 сек.
Память: 16 Мб
Сложность: 33%
В данной двумерной целочисленной таблице размером N × N требуется найти три элемента, сумма которых максимальна. При этом первый элемент должен быть соседним по горизонтали или вертикали со вторым, а второй — с третьим.
Входной файл INPUT.TXT содержит в первой строке число N (1 < N ≤ 2000). В следующих N строках записано по N чисел – элементы таблицы. Элементы матрицы по абсолютной величине не превышают 100.
Выходной файл OUTPUT.TXT должен содержать единственное число — максимальную сумму.
| Ввод | Вывод |
|---|---|
| 3 1 1 1 2 2 1 2 1 0 |
6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Со спутника-шпиона получено изображение в некотором волновом диапазоне сверхсекретной военной базы предполагаемого противника. База расположена на Антарктиде, все постройки на ней высечены из кубов льда и имеют на фотографии квадратную форму и не имеют общих фрагментов стен ненулевой длины (по всей видимости, это сделано в целях маскировки от локаторов, работающих в инфракрасном спектре). Благодаря мастерству операторов оказалось, что стены разных построек параллельны границам фотографии.
Для того, чтобы составить сверхсрочный отчет для командования, необходимо узнать, сколько зданий находятся на базе. Напишите программу, которая это сделает.
В первой строке входного файла INPUT.TXT записаны числа N и M (1 ≤ M, N ≤ 500) – размеры фотографии в пикселях по вертикали и по горизонтали. Следующие N строк содержат по M символов каждая: символ '.' соответствует пустому месту, '#' – элементу постройки.
В выходной файл OUTPUT.TXT выведите единственное число – количество построек на базе.
| Ввод | Вывод |
|---|---|
| 8 6 ...... ...##. ...##. ...... .###.. .###.. .###.. ...... |
2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
В прямоугольной таблице N×M (в каждой клетке которой записано некоторое число) в начале игрок находится в левой верхней клетке. За один ход ему разрешается перемещаться в соседнюю клетку либо вправо, либо вниз (влево и вверх перемещаться запрещено). При проходе через клетку с игрока берут столько у.е., какое число записано в этой клетке (деньги берут также за первую и последнюю клетки его пути).
Требуется найти минимальную сумму у.е., заплатив которую игрок может попасть в правый нижний угол.
Во входном файле INPUT.TXT задано два числа N и M - размеры таблицы (1 ≤ N ≤ 20, 1 ≤ M ≤ 20). Затем идет N строк по M чисел в каждой - размеры штрафов в у.е. за прохождение через соответствующие клетки (числа от 0 до 100).
В выходной файл OUTPUT.TXT выведите минимальную сумму, потратив которую можно попасть в правый нижний угол.
| Ввод | Вывод |
|---|---|
| 3 4 1 1 1 1 5 2 2 100 9 4 2 1 |
8 |
| 5 5 1 1 1 1 1 3 100 100 100 100 1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 |
11 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
В городе N площадей. Любые две площади соединены между собой ровно одной дорогой с двусторонним движением. В этом городе живет Штирлиц. У Штирлица есть хобби - он любит воскресным утром выйти из дома, сесть в машину, выбрать какой-нибудь кольцевой маршрут, проходящий ровно по трем площадям (то есть сначала он едет с какой-то площади на какую-то другую, потом - на третью, затем возвращается на начальную, и опять едет по этому маршруту). Он воображает, что где-то на этом пути стоит Борман. И так вот ездит Штирлиц все воскресенье, пока голова не закружится, и радуется...
Естественно, что Штирлицу хочется проезжать мимо точки, в которой, как он воображает, стоит Борман, как можно чаще. Для этого, естественно, выбранный Штирлицем маршрут должен быть как можно короче. Напишите программу, которая выберет оптимальный для Штирлица маршрут.
Во входном файле input.txt записано сначала число N (3 ≤ N ≤ 100), а затем матрица N×N расстояний между площадями (число в позиции i,j обозначает длину дороги, соединяющей i-ую и j-ую площади). Все числа в матрице (кроме стоящих на главной диагонали) - натуральные, не превышающие 1000. Матрица симметрична относительно главной диагонали, на главной диагонали стоят 0.
В выходной файл output.txt выведите длину оптимального маршрута.
| Ввод | Вывод |
|---|---|
| 5 0 20 10 30 40 20 0 30 1 2 10 30 0 40 1000 30 1 40 0 21 40 2 1000 21 0 |
24 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Дана последовательность целых чисел. Требуется найти подпоследовательность заданной последовательности с максимальным модулем суммы входящих в нее чисел. Напомним, что модуль целого числа x равняется x, если x ≥ 0 и -x, если x < 0.
Первая строка входного файла input.txt содержит натуральное число n (1 ≤ n ≤ 10000) - длину последовательности. Во второй строке записаны n целых чисел, по модулю не превосходящих 10000.
В первой строке выходного файла output.txt выведите длину k выбранной вами подпоследовательности. Во второй строке должны быть записаны k различных чисел, разделенных пробелами - номера выбранных членов последовательности.
| Ввод | Вывод |
|---|---|
| 5 -1 4 -1 6 -7 |
2 2 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 31%
Правительство Флатландии решило провести реформу денежной системы. Цель реформы – радикально уменьшить число банкнот в обращении, в результате их должно остаться ровно две. Таким образом, после реформы во Флатландии будут циркулировать банкноты достоинством a тугриков и b тугриков, где a и b поручено выбрать министерству финансов.
Одна из проблем заключается в том, что президент Флатландии ненавидит число x. Поэтому министр финансов решил, что выберет такие a и b, что нельзя будет заплатить ровно x тугриков без сдачи. С другой стороны, для любой суммы большей x должна быть возможность заплатить ее без сдачи.
Итак, вам поручено выбрать соответствующие a и b.
Входной файл INPUT.TXT содержит натуральное число x, не превосходящее 1012.
В выходной файл OUTPUT.TXT выведите два целых числа a и b такие, что сумму в x тугриков нельзя заплатить банкнотами в a и b тугриков без сдачи, а любую большую сумму – можно. Если решения не существует, выведите в выходной файл два нуля.
| Ввод | Вывод |
|---|---|
| 3 | 2 5 |
| 4 | 0 0 |
| 5 | 3 4 |
Время: 1 сек.
Память: 16 Мб
Сложность: 3%
Одна из основных операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа.
В двух строчках входного файла input.txt записаны числа A и B, не превосходящие по абсолютной величине 2×109.
Запишите в выходной файл output.txt один символ "<", если A < B, ">", если A > B и "=", если A=B.
| Ввод | Вывод |
|---|---|
| 5 7 |
< |
| -7 -12 |
> |
| 13 13 |
= |
Время: 1 сек.
Память: 16 Мб
Сложность: 9%
Однажды компьютерная мышка подумала, что стоит взять про запас еще один коврик. Чтобы никто не заметил запасного коврика, мышка решила его спрятать под свой прямоугольный коврик. Пробравшись ночью на склад, мышка обнаружила там только круглые коврики. Удастся ли мышке спрятать круглый коврик под прямоугольным ковриком?
Входной файл input.txt содержит три натуральных числа: W, H и R, где W и H - ширина и высота прямоугольного коврика, а R – радиус запасного коврика. Все числа не превосходят значения 109.
В выходной файл output.txt выведите «YES», если новый коврик можно спрятать под старым, и слово «NO», если этого сделать нельзя.
| Ввод | Вывод |
|---|---|
| 4 7 2 | YES |
| 4 7 3 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Найдите количество чисел из отрезка [L, R], которые делятся на произведение своих цифр.
Входной файл input.txt содержит два целых числа L и R. (1 ≤ L ≤ R ≤ 109, |R-L| ≤ 105)
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 1 12 | 11 |
Время: 1 сек.
Память: 16 Мб
Сложность: 45%
Требуется найти наименьшее натуральное число Q такое, что произведение его цифр равно заданному числу N.
В единственной строке входного файла INPUT.TXT записано одно целое число N (0 ≤ N ≤ 109).
В выходной файл OUTPUT.TXT нужно вывести искомое число Q. В том случае, если такого числа не существует, следует вывести -1.
| Ввод | Вывод |
|---|---|
| 10 | 25 |
| 13 | -1 |
| 8 | 8 |
| 90 | 259 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Большой любитель математики Вова решил повесить у себя в комнате таблицу умножения. После некоторых раздумий он обнаружил, что обычная таблица умножения 10 на 10 уже не популярна в наши дни. Он решил повесить у себя в комнате таблицу N на M. Представив себе эту таблицу, Вова задался вопросом - сколько раз в ней встречается каждая из цифр от 0 до 9?
И прежде чем нарисовать эту таблицу Вова попросил вас написать программу, которая даст ответ на его вопрос.
Как известно, в таблице умножения на пересечении строки i и столбца j записано число i∙j.
Входной файл input.txt состоит из единственной строки, на которой через пробел записаны два натуральных числа N и M (1 ≤ N, M ≤ 1000).
Выходной файл output.txt должен состоять из десяти строк. На строке i выведите количество раз, которое Вове придется нарисовать цифру i - 1.
| Ввод | Вывод |
|---|---|
| 10 10 | 28 24 27 15 23 15 17 8 15 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Найти количество N-значных чисел, у которых сумма цифр равна их произведению. Вывести наименьшее среди таких чисел для заданного N.
В единственной строке входного файла input.txt записано одно натуральное число N, которое не превышает 10.
В единственную строку выходного файла output.txt нужно вывести через пробел 2 числа: количество искомых чисел и наименьшее среди них.
| Ввод | Вывод |
|---|---|
| 1 | 10 0 |
| 2 | 1 22 |
Время: 1 сек.
Память: 16 Мб
Сложность: 28%
Натуральные числа записаны в строку без каких-либо разделителей. Начало этой строки имеет вид 123456789101112131415161718192021… .
Требуется написать программу, которая определит первое вхождение десятичной записи заданного числа N в этой строке.
Входной файл input.txt содержит заданное число N (1 ≤ N ≤ 104).
Выходной файл output.txt должен содержать одно число – позицию, начиная с которой в строке записано первое вхождение заданного числа. Нумерация позиций начинается с единицы.
| Ввод | Вывод |
|---|---|
| 45 | 4 |
| 101 | 10 |
| 142 | 73 |
Время: 1 сек.
Память: 16 Мб
Сложность: 17%
В полуфинале студенческого чемпионата мира по программированию NEERC (http://neerc.ifmo.ru) участвуют команды из n институтов. Участники для проведения соревнований распределяются по k залам, каждый из которых имеет размеры, достаточные для размещения всех команд от всех институтов. При этом по правилам соревнований в одном зале может находиться не более одной команды от института.
Многие институты уже подали заявки на участие в полуфинале. Оргкомитет полуфинала хочет допустить до участия максимально возможное количество команд. При этом, разумеется, должна существовать возможность рассадить их по залам без нарушения правил.
Напишите программу, определяющую максимальное количество команд, которые можно допустить до участия в полуфинале.
Первая строка входного файла input.txt содержит число n - число институтов, подавших заявки. Вторая строка входного файла содержит n чисел a1, …, an (ai - это количество команд, заявленных от института номер i). Последняя строка входного файла содержит число k - количество залов, в которых проходят соревнования.
Все числа во входном файле целые, положительные и не превосходят 10000.
В выходной файл output.txt выведите одно целое число - ответ на задачу.
| Ввод | Вывод |
|---|---|
| 3 1 2 4 3 |
6 |
| 3 1 2 4 4 |
7 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Незнайка и его друзья собрались в космическое путешествие. Они уже и новый звездолет построили. Хоть он и построен был с учетом новых технологий, был у него один большой недостаток. После T1 часов полета, аккумуляторы требовали обязательной подзарядки от солнечной батареи в течении T2 часов, а конструкция звездолета такова, что его двигатель на время подзарядки останавливается и звездолет начинает двигаться в обратную сторону. Известно, что за T1 часов полета звездолет улетает на S1 км, а за T2 часов разрядки возвращается на S2 км.
Требуется определить: сколько потребуется времени для полета Незнайки и его друзей на различные планеты, если известно расстояние S до планет.
Входной файл input.txt содержит пять натуральных чисел, разделенных пробелами: T1, T2, S1, S2, S. Все числа не превышают 107.
В выходной файл output.txt выведите время в часах (с точностью до двух знаков после запятой), за которое звездолет долетит до планеты. Если добраться до планеты не получится, то следует вывести «NO».
| Ввод | Вывод |
|---|---|
| 5 3 5 3 4 | 4.00 |
| 5 3 5 3 6 | 12.00 |
| 5 1 3 3 6 | NO |
| 10 1 100 20 500 | 65.00 |
Время: 1 сек.
Память: 16 Мб
Сложность: 16%
Однажды Вася очень долго просидел на остановке, прежде чем дождался своего автобуса. Чтобы как-то занять время, он решил записывать на листочке государственные регистрационные номера проходящих мимо автобусов, следующих по другому маршруту, нежели нужен был Васе. При этом производилась запись лишь основного номера, без учета региональной принадлежности. В итоге Васе удалось записать N таких номеров.
Основная часть государственного регистрационного номера состоит из 6 символов: трех букв и трех цифр. Сначала идет буква, затем 3 цифры и еще 2 буквы заканчивают запись. В качестве цифр могут использоваться любые цифры от 0 до 9, а в качестве букв только прописные буквы, обозначения которых присутствуют как в английском, так и в русском алфавите, т.е. только следующие символы: A, B, C, E, H, K, M, O, P, T, X, Y. Например, «P204BT» - правильный номер, а «X182YZ» и «ABC216» - нет.
Ваша задача заключается в проверке правильности проделанной Васей работы. А именно, нужно определить, какие из номеров соответствуют принятому стандарту, а какие нет.
Первая строка входного файла input.txt содержит единственное натуральное число N – количество записанных Васей номеров (N ≤ 50). Далее следует N строк с записями номеров автобусов. Длины строк от 1 до 300 и содержат только символы с кодами ASCII от 33 до 127 (не содержат пробелов, специальных и русских символов).
В выходной файл output.txt выведите N строк, в i-й строке должно содержаться «Yes», если соответствующая i-я запись номера верна и «No» в противном случае.
| Ввод | Вывод |
|---|---|
| 5
P204BT X182YZ a216bc A216BC ABC216 |
Yes No No Yes No |
Время: 1 сек.
Память: 16 Мб
Сложность: 20%
Выведите в выходной файл округленное до n знаков после десятичной точки число E. В данной задаче будем считать, что число Е в точности равно 2.7182818284590452353602875.
Входной файл input.txt содержит целое число n (0 ≤ n ≤ 25).
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 0 | 3 |
| 25 | 2.7182818284590452353602875 |
| 13 | 2.7182818284590 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Число Смита — такое составное число, сумма цифр которого равняется сумме цифр всех его простых сомножителей. Так, примером числа Смита может служить 202, поскольку 2 + 0 + 2 = 4 и 2 + 1 + 0 + 1 = 4 (202 = 2 * 101). Напишите программу, которая для заданной последовательности чисел определяет, какие из них являются числами Смита.
Входной файл input.txt содержит не более 20 натуральных чисел в пределах от 4 до 106.
В выходной файл output.txt выведите строку из 0 и 1 (1, если соответствующее число является числом Смита и 0 иначе).
| Ввод | Вывод |
|---|---|
| 4 20 17 202 | 1001 |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Напомним, что палиндромом называется строка, одинаково читающаяся с обеих сторон. Например, строка «ABBA» является палиндромом, а строка «ABC» - нет.
Необходимо определить, в каких системах счисления с основанием от 2 до 36 представление заданного числа N является палиндромом.
В системах счисления с основанием большим 10 в качестве цифр используются буквы английского алфавита: A, B, ... , Z. Например, A11 = 1010, Z36 = 3510.
Входной файл input.txt содержит заданное число N в десятичной системе счисления (1 ≤ N ≤ 109).
Если соответствующее основание системы счисления определяется единственным образом, то выведите в первой строке выходного файла output.txt слово «unique», если оно не единственно — выведите в первой строке выходного файла слово «multiple». Если же такого основания системы счисления не существует — выведите в первой строке выходного файла слово «none».
В случае существования хотя бы одного требуемого основания системы счисления выведите через пробел в возрастающем порядке во второй строке выходного файла все основания системы счисления, удовлетворяющие требованиям.
| Ввод | Вывод |
|---|---|
| 123 | unique 6 |
| 111 | multiple 6 10 36 |
| 102892748 | none |
Время: 1 сек.
Память: 16 Мб
Сложность: 29%
Как известно, на вопрос о том, сколько у него учеников, древнегреческий учёный Пифагор отвечал так: "Половина моих учеников изучает математику, четвертая часть изучает природу, седьмая часть проводит время в молчаливом размышлении, остальную часть составляют 3 девы".
Секретарь олимпиады на вопрос: "Сколько участников на олимпиаде по информатике?", отвечал подобно Пифагору: "K-тая часть участников начала решать первую задачу, M-тая часть – вторую, а N-тая – третью. В то же время D участников решают проблему: "С чего начать?". Ваша задача определить количество участников олимпиады или вывести -1, если секретарь ошибся.
В единственной строке входного файла input.txt записаны числа K, N, M, D (1 ≤ K, N, M, D ≤ 100).
В единственную строку выходного файла output.txt нужно вывести одно число - количество участников олимпиады или вывести -1, если секретарь ошибся.
| Ввод | Вывод |
|---|---|
| 2 4 7 3 | 28 |
| 2 2 2 3 | -1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 23%
Требуется написать программу, которая найдет наименьшее и наибольшее числа, состоящие из тех же цифр, что и заданное натуральное число N.
Входной файл INPUT.TXT содержит натуральное число N (N ≤ 2×109).
Выходной файл OUTPUT.TXT должен содержать в одной строке наименьшее, а через пробел – наибольшее числа.
| Ввод | Вывод |
|---|---|
| 7051 | 1057 7510 |
| 851 | 158 851 |
Время: 1 сек.
Память: 16 Мб
Сложность: 23%
Игра в числа ведётся на одномерном массиве целых положительных чисел. Перед началом, жеребьёвкой определяется, кто будет ходить первым (первый игрок), а кто – вторым (второй игрок). Процесс игры состоит в том, что игроки по очереди (сначала первый игрок, затем второй, следом опять первый и так далее) вычёркивают числа из массива. Вычеркнуть можно только число, находящееся в конце или начале оставшегося массива. При этом всегда вычёркивается максимальное число из этих двух. Если первое и последнее числа массива равны, то вычёркивается первое. Игра продолжается до того момента, пока не будут вычеркнуты все числа. Каждое вычеркнутое число идёт в актив тому игроку, который его вычеркнул. После окончания игры каждый игрок суммирует вычеркнутые им числа. Победителем объявляется тот, кто наберет больше очков.
Некоторые игроки поняли, что результат не зависит от стратегии игры, и решили попросить Вас написать программу для получения результата.
В первой строке входного файла input.txt находится одно целое число N – количество чисел в массиве (1 ≤ N ≤ 104). Во второй строке находятся N целых положительных чисел из диапазона [1, 32000], разделённых пробелом.
В выходной файл OUTPUT.TXT выведите два числа, разделенные двоеточием. Первое число – количество очков, набираемых первым игроком при игре на этом массиве, второе число – для второго.
| Ввод | Вывод |
|---|---|
| 5 4 4 1 5 4 |
9:9 |
| 1 1234 |
1234:0 |
Время: 1 сек.
Память: 16 Мб
Сложность: 25%
Антон записал ряд натуральных чисел в порядке возрастания: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 и т.д. Затем вычеркнул из него все числа, в которых имеется хотя бы две одинаковых цифры, и получил последовательность: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23 и т.д.
Вам необходимо по заданному N найти N-ое по счету число в получившейся последовательности.
В единственной строке входного файла input.txt записано натуральное число N (1 ≤ N ≤ 10000).
В единственную строку выходного файла output.txt нужно вывести N-ое по счету число без одинаковых цифр.
| Ввод | Вывод |
|---|---|
| 100 | 123 |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Чтобы предсказать судьбу человека, нумеролог берет время жизни человека в секундах, затем складывает все цифры этого числа. Если полученное число состоит более чем из одной цифры, операция повторяется, пока в числе не останется одна цифра. Затем по полученной цифре и числу операций, необходимых для преобразования числа в цифру нумеролог предсказывает судьбу человека. Нумеролог плохо умеет считать, а числа, с которыми он работает, могут быть очень большими. Напишите программу, которая бы делала все расчеты за него.
Входной файл input.txt содержит число N – время жизни человека в секундах (1 ≤ N ≤ 101000).
В выходной файл output.txt выведите два числа через пробел: полученную цифру из числа N и число преобразований.
| Ввод | Вывод |
|---|---|
| 1 | 1 0 |
| 10 | 1 1 |
| 99 | 9 2 |
Время: 1 сек.
Память: 16 Мб
Сложность: 3%
Белочка собрала в лесу N шишек c орешками. Белочка очень привередливо выбирала шишки, и брала только те, в которых ровно M орешков. Также известно, что для пропитания зимой ей необходимо не менее K орешков. Определите, хватит ли на зиму орешков белочке.
Входной файл input.txt содержит три натуральных числа: N, M и K (N, M ≤ 100, K ≤ 10 000).
В выходной файл output.txt выведите «YES» если белочке хватит орешков и «NO» в противном случае.
| Ввод | Вывод |
|---|---|
| 4 5 20 | YES |
| 4 5 21 | NO |
| 3 2 1 | YES |
Время: 1 сек.
Память: 16 Мб
Сложность: 18%
Летом Вася очень любил смотреть в окно. Напротив его дома расположился офис некоторой строительной фирмы. В течение всего месяца Вася наблюдал за его сотрудниками. Про каждый из 31 дня месяца он знает, сколько сотрудников пришло на работу. Ему также известно, что каждый из сотрудников берет ровно по 4 выходных в месяц.
Теперь он ломает голову над загадкой – сколько всего сотрудников работает в этом офисе. Напишите программу, которая ответит Васе на этот вопрос.
В единственной строке входного файла input.txt записано 31 целое неотрицательное число. Эти числа описывают количество сотрудников, пришедших в офис в соответствующие дни месяца. Гарантируется, что входные данные корректны.
В единственную строку выходного файла output.txt нужно вывести единственное число – общее количество сотрудников офиса. Гарантируется, что ответ не превышает 100.
| Ввод | Вывод |
|---|---|
| 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 0 0 0 | 10 |
Время: 1 сек.
Память: 16 Мб
Сложность: 32%
Игровое поле N×M заполняется целыми числами, одно неотрицательное целое число в каждой клетке. Цель игры состоит в том, чтобы пройти по любому разрешенному пути от верхнего левого угла до правого нижнего. Целое число в каждой клетке указывает, какой длины шаг должен быть из текущей клетки. Все шаги могут быть или направо или вниз. Если в результате какого-либо шага игрок покидает пределы поля, такой шаг запрещается.
На рис. 1 приведен пример игрового поля 3×4, где сплошная окружность показывает положение начала, а пунктирная окружность – цель. Рис. 2 показывает три возможных пути от начала до цели для рассматриваемого примера игрового поля, с удаленными промежуточными числами.
Требуется написать программу, которая определит число различных вариантов путей от верхнего левого угла до правого нижнего.
Входной файл INPUT.TXT содержит в первой строке размеры поля N (1 ≤ N ≤ 70) и M (1 ≤ M ≤ 70). В последующих N строках входного файла, каждая из которых описывает отдельную строку игрового поля, записаны через пробел по M целых чисел от 0 до 100 – длины шагов из клеток данной строки.
Выходной файл OUTPUT.TXT должен содержать одно число - число различных вариантов путей от верхнего левого угла до правого нижнего. Для каждого поля будет менее чем 231 различных путей.
| Ввод | Вывод |
|---|---|
| 3 4 2 1 1 2 3 2 1 44 3 1 1 0 |
3 |
Время: 1 сек.
Память: 16 Мб
Сложность: 27%
Найдите максимальное значение функции f(x, y) = Ax + By при условии, что x2 + y2 = R2, и аргументы, при котором оно достигается.
Входной файл input.txt содержит три вещественных числа: A, B, R (1 ≤ A, B, R ≤ 10), заданные не более чем с тремя знаками после десятичной точки.
В первой строке выходного файла output.txt выведите максимальное значение, которое достигает функция. Во второй строке выведите значения аргументов x0,y0, при которых это значение достигается. Все числа должны быть выведены с точностью не хуже 10−5.
| Ввод | Вывод |
|---|---|
| 1 1 1 | 1.414213562373 0.707106781187 0.707106781187 |
| 2.0 1.0 1.0 | 2.236067977500 0.894427191000 0.447213595500 |
Время: 1 сек.
Память: 16 Мб
Сложность: 26%
Катя решила пригласить к себе в гости n друзей. Так как ее друзья очень любят фрукты, то в качестве угощения для них она купила m одинаковых апельсинов.
Она хочет разрезать каждый апельсин на одинаковое число равных долек так, чтобы их можно было распределить между гостями (сама Катя апельсины есть не будет), и всем гостям досталось поровну долек.
Напишите программу, которая вычисляет минимальное количество долек, на которое необходимо разрезать каждый апельсин, чтобы были выполнены указанные выше условия.
Входной файл input.txt содержит два положительных целых числа n и m (1 ≤ n, m ≤ 109).
В выходной файл output.txt выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 2 5 | 2 |
| 2 4 | 1 |
Время: 1 сек.
Память: 16 Мб
Сложность: 30%
Назовем значение выражения 22n n-ой сверхстепенью числа 2. Таким образом, например, третья сверхстепень числа 2 равна 223 = 28 = 256.
Ваша задача – вычислить n-ую сверхстепень двойки по модулю m.
Входной файл INPUT.TXT содержит два целых числа: n (0 ≤ n ≤ 105) и m (2 ≤ m ≤ 104).
В выходной файл OUTPUT.TXT выведите ответ на задачу.
| Ввод | Вывод |
|---|---|
| 3 1000 | 256 |
| 10 10 | 6 |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево.
Входной файл input.txt содержит натуральное число N (1000 ≤ N ≤ 9999).
В выходной файл output.txt следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет.
| Ввод | Вывод |
|---|---|
| 6116 | YES |
| 1231 | NO |
Время: 1 сек.
Память: 16 Мб
Сложность: 24%
Пекарь считает, что для получения рождественского пирога идеальной симметричной формы его нужно вынимать из духовки в тот момент, когда часы показывают «палиндромное» время, которое читается одинаково слева-направо и справа-налево.
Напишите программу, которая определяет по времени установки пирога в духовку время, когда будет подходящее время для его извлечения.
В единственной строке входного файла input.txt записано время установки пирога в духовку в формате HH:MM (00 ≤ HH ≤ 23, 00 ≤ MM ≤ 59).
В единственную строку выходного файла output.txt нужно вывести ближайшее «палиндромное» время в формате HH:MM.
| Ввод | Вывод |
|---|---|
| 00:00 | 01:10 |
| 12:34 | 13:31 |
| 23:59 | 00:00 |
Время: 1 сек.
Память: 16 Мб
Сложность: 10%
Прямоугольный параллелепипед - это объемная фигура, у которой шесть граней, и каждая из них является прямоугольником. Моделями прямоугольного параллелепипеда служат классная комната, кирпич, спичечная коробка. Длины трех ребер прямоугольного параллелепипеда, имеющих общий конец, называют его измерениями. На приведенном рисунке измерения представлены ребрами AB, BC и BF с общим концом в точке B, а значения измерений равны их длинам a, b и c соответственно.
По заданным измерениям прямоугольного параллелепипеда Вам необходимо определить площадь его поверхности и объем.
Единственная строка входного файла input.txt содержит разделенные пробелом три натуральных числа A, B и С – измерения параллелепипеда, каждое из измерений не превышает 106.
В выходной файл output.txt выведите через пробел два целых числа: площадь поверхности и объем заданного параллелепипеда.
| Ввод | Вывод |
|---|---|
| 1 1 1 | 6 1 |
| 2 3 4 | 52 24 |