├── 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 └── image.gif ├── 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 └── image.gif ├── 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 /Not_deaf_phone/NotDeafPhone.java: -------------------------------------------------------------------------------- 1 | package Not_deaf_phone; 2 | import java.io.*; 3 | import java.util.*; 4 | public class NotDeafPhone { 5 | public static void main(String[] args) throws IOException { 6 | String str; 7 | FileReader fin = new FileReader("input.txt"); // Получение числа из файла 8 | Scanner sc = new Scanner(fin); 9 | str = sc.nextLine(); 10 | FileWriter countStepFinish = new FileWriter("output.txt");// Запись числа в файл 11 | countStepFinish.write(str); 12 | countStepFinish.close(); 13 | } 14 | } -------------------------------------------------------------------------------- /_other_tasks_/a_glutton/Glutton.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.a_glutton; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.Scanner; 5 | 6 | public class Glutton { 7 | public static void main(String[] args){ 8 | Scanner in = new Scanner(System.in); 9 | PrintWriter out = new PrintWriter(System.out); 10 | int a = in.nextInt(); 11 | int b = in.nextInt(); 12 | int c = in.nextInt(); 13 | int d = in.nextInt(); 14 | int e = in.nextInt(); 15 | 16 | if (a == 1) { 17 | out.println("Vsevolod"); 18 | } else if (b == 1) { 19 | out.println("Kirill"); 20 | } else if (c == 1) { 21 | out.println("Dmitry"); 22 | } else if (d == 1) { 23 | out.println("Nikolay"); 24 | } else if (e == 1) { 25 | out.println("Viktor"); 26 | } else { 27 | out.println("Marina"); 28 | } 29 | 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /_other_tasks_/b_test_task_in_naumen/TestTaskInNaumen.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.b_test_task_in_naumen; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.Scanner; 5 | 6 | public class TestTaskInNaumen { 7 | public static void main(String[] args) { 8 | Scanner in = new Scanner(System.in); 9 | PrintWriter out = new PrintWriter(System.out); 10 | int n = Integer.parseInt(in.nextLine()); 11 | String[] vectorN = in.nextLine().split(" "); 12 | int m = Integer.parseInt(in.nextLine()); 13 | String[] vectorM = in.nextLine().split(" "); 14 | 15 | int index = 0; 16 | for (String number: vectorN) { 17 | int count = Integer.parseInt(number); 18 | 19 | for (int i = 0; i < count; i++) { 20 | out.print(vectorM[index]); 21 | } 22 | out.print(" "); 23 | 24 | index++; 25 | if (index >= vectorM.length) { 26 | index = 0; 27 | } 28 | 29 | } 30 | 31 | out.flush(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /_other_tasks_/big_add_one/BigAddOneShort.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.big_add_one; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BigAddOneShort { 10 | public static void main(String[] args) throws FileNotFoundException { 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | PrintWriter out = new PrintWriter(System.out); 14 | BigInteger num = new BigInteger(sc.nextLine()); 15 | BigInteger res = num.add(BigInteger.ONE); 16 | 17 | out.println(res); 18 | out.flush(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /_other_tasks_/big_add_one/README.md: -------------------------------------------------------------------------------- 1 |

A5. прибавить один

2 |

Время: 1 сек.
Память: 64Mb

3 |

Напишите программу, которая прибавляет 1 к целому числу N длина числа N до 1000 знаков

4 |

Формат ввода

5 |

Дано чиcло N

6 |

Формат вывода

7 |

Выведите число N+1

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
12
56
27 | -------------------------------------------------------------------------------- /_other_tasks_/big_comparing_numbers/BigComparingNumbersShort.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.big_comparing_numbers; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BigComparingNumbersShort { 10 | public static void main(String[] args) throws FileNotFoundException { 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | PrintWriter out = new PrintWriter(System.out); 14 | BigInteger a = new BigInteger(sc.nextLine()); 15 | BigInteger b = new BigInteger(sc.nextLine()); 16 | 17 | if (a.compareTo(b) > 0) { 18 | out.println(">"); 19 | } else if (a.compareTo(b) == 0) { 20 | out.println("="); 21 | } else { 22 | out.println("<"); 23 | } 24 | 25 | out.flush(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /_other_tasks_/big_comparing_numbers/README.md: -------------------------------------------------------------------------------- 1 |

B5. Сравнение чисел

2 |

Время: 1 сек.
Память: 64Mb

3 |

Напишите программу, которая сравнит два целых неотрицательных числа и выведет результат сравнения.

4 |

Формат ввода

5 |

Даны два целых неотрицательных числа, в записи каждого не более 200 цифр.

6 |

Формат вывода

7 |

Выведите знак <, если первое число меньше второго, знак >, если первое больше второго или знак =, если числа совпадают.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 |
ВводВывод
0
19 | 0
=
63416241155558449158
24 | 63416241155558449157
>
29 | -------------------------------------------------------------------------------- /_other_tasks_/big_difference_numbers/BigDifferenceNumbersShort.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.big_difference_numbers; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BigDifferenceNumbersShort { 10 | public static void main(String[] args) throws FileNotFoundException { 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | PrintWriter out = new PrintWriter(System.out); 14 | BigInteger a = new BigInteger(sc.nextLine()); 15 | BigInteger b = new BigInteger(sc.nextLine()); 16 | 17 | out.println(a.subtract(b)); 18 | 19 | out.flush(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /_other_tasks_/big_difference_numbers/README.md: -------------------------------------------------------------------------------- 1 |

D5. Разность чисел

2 |

Время: 1 сек.
Память: 64Mb

3 |

Напишите программу, вычисляющую разность двух целых неотрицательных чисел. 4 | Длина каждого из чисел не превосходит 250.

5 |

Формат ввода

6 |

Даны два числа, каждое записано на отдельной строке. 7 | Гарантируется, что первое число не меньше второго.

8 |

Формат вывода

9 |

Выведите разность данных чисел.

10 |

Примеры

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 |
ВводВывод
987654
21 | 876543
111111
100000
26 | 1
99999
31 | -------------------------------------------------------------------------------- /_other_tasks_/big_multiplication/BigMultiplicationShort.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.big_multiplication; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BigMultiplicationShort { 10 | public static void main(String[] args) throws FileNotFoundException { 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | PrintWriter out = new PrintWriter(System.out); 14 | BigInteger a = new BigInteger(sc.nextLine()); 15 | BigInteger b = new BigInteger(sc.nextLine()); 16 | 17 | out.println(a.multiply(b)); 18 | 19 | out.flush(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /_other_tasks_/big_multiplication/README.md: -------------------------------------------------------------------------------- 1 |

E5. Умножение

2 |

Время: 1 сек.
Память: 64Mb

3 |

Напишите программу, которая вычисляет произведение двух целых неотрицательных чисел. 4 | Длина каждого числа не превышает 250 знаков.

5 |

Формат ввода

6 |

Даны два числа, каждое записано в отдельной строке.

7 |

Формат вывода

8 |

Выведите произведение чисел.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 |
ВводВывод
827364
20 | 34
28130376
23
25 | 9999
229977
30 | -------------------------------------------------------------------------------- /_other_tasks_/big_sum_numbers/BigSumNumbersShort.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.big_sum_numbers; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BigSumNumbersShort { 10 | public static void main(String[] args) throws FileNotFoundException { 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | PrintWriter out = new PrintWriter(System.out); 14 | BigInteger a = new BigInteger(sc.nextLine()); 15 | BigInteger b = new BigInteger(sc.nextLine()); 16 | 17 | out.println(a.add(b)); 18 | 19 | out.flush(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /_other_tasks_/big_sum_numbers/README.md: -------------------------------------------------------------------------------- 1 |

C5. Сумма чисел

2 |

Время: 1 сек.
Память: 64Mb

3 |

Напишите программу, которая вычисляет сумму двух целых неотрицательных чисел. Длина каждого из чисел не превосходит 250.

4 |

Формат ввода

5 |

Даны два числа, каждое записано на отдельной строке.

6 |

Формат вывода

7 |

Выведите сумму данных чисел.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 |
ВводВывод
0
19 | 0
0
99999
24 | 1
100000
29 | -------------------------------------------------------------------------------- /_other_tasks_/f_positive_divisors/README.md: -------------------------------------------------------------------------------- 1 |

F. Положительные делители

2 |

Время: 1 сек.
Память: 256 Мб

3 |

Рассмотрим числа от L до R. Требуется отсортировать их по возрастанию количества целых положительных делителей. При равном количестве делителей числа должны быть отсортированы по возрастанию.

4 |

Формат ввода

5 |

На ввод подаётся два числа L и R (1 ≤ L ≤ R ≤ 300 000).

6 |

Формат вывода

7 |

Выведите числа от L до R в описанном в условии порядке.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
10 2011 13 17 19 10 14 15 16 12 18 20
-------------------------------------------------------------------------------- /_other_tasks_/g_couriers_implementation/variant_two.py: -------------------------------------------------------------------------------- 1 | # Оптимизируйте (если потребуется) ваше решение предыдущей задачи. Решение будет запущено на тестах с большими ограничениями: 1 <= m <= 250 000. 2 | 3 | fin = open("input.txt", 'r') 4 | n = int(fin.readline()) 5 | orders = [] 6 | for index in range(n): 7 | (a, b) = fin.readline().split() 8 | firstTime = a.split(":") 9 | secondTime = b.split(":") 10 | orders.append([int(firstTime[0])*3600+ int(firstTime[1])*60 + int(firstTime[2]), 's']) 11 | orders.append([int(secondTime[0])*3600+ int(secondTime[1])*60 + int(secondTime[2]), 'f']) 12 | 13 | fin.close() 14 | orders.sort(key=lambda x: (x[0], x[1])) 15 | 16 | usedCouriersMax = 0 17 | usedCouriers = 0 18 | 19 | for orderId in range(0, len(orders)): 20 | if usedCouriers > usedCouriersMax: 21 | usedCouriersMax = usedCouriers 22 | if orders[orderId][1] == 's': 23 | usedCouriers += 1 24 | if usedCouriers > usedCouriersMax: 25 | usedCouriersMax = usedCouriers 26 | if orders[orderId][1] == 'f': 27 | usedCouriers -= 1 28 | 29 | 30 | print(usedCouriersMax) -------------------------------------------------------------------------------- /_other_tasks_/gcd/Gcd.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.gcd; 2 | // https://official.contest.yandex.ru/rucode5.0/contest/35546/problems/?success=67521304#7/2016_07_22/HvuFCYTXtU 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class Gcd { 9 | static int gcd(int a, int b) { 10 | if (a == 0 || b == 0) { 11 | return a + b; 12 | } 13 | if (a > b) { 14 | return gcd(a % b, b); 15 | } else { 16 | return gcd(a, b % a); 17 | } 18 | } 19 | 20 | public static void main(String[] args) throws IOException { 21 | FileReader file = new FileReader("input.txt"); 22 | Scanner sc = new Scanner(file); 23 | int a = Integer.parseInt(sc.nextLine()); 24 | int b = Integer.parseInt(sc.nextLine()); 25 | int result = gcd(a, b); 26 | 27 | PrintWriter out = new PrintWriter(System.out); 28 | out.println(result); 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /_other_tasks_/gcd/README.md: -------------------------------------------------------------------------------- 1 |

A1. GCD

2 |

Время: 1 сек.
Память: 256Mb

3 |

Заданы два целых положительных числа a и b. Найти их наибольший общий делитель.

4 |

Формат ввода

5 |

В первой строке входа задано число a, во второй - число b (1 ≤ a,b ≤ 109).

6 |

Формат вывода

7 |

Одно число — наибольший общий делитель введённых чисел.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
ВводВывод
26
19 | 44
2
24 | -------------------------------------------------------------------------------- /_other_tasks_/i_basketball_game/BasketballGame.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.i_basketball_game; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class BasketballGame { 9 | public static void main(String[] args) throws IOException { 10 | 11 | long firstTeam = 0; 12 | long secondTeam = 0; 13 | 14 | Scanner sc = new Scanner(new FileReader("input.txt")); 15 | while (sc.hasNextLine()) { 16 | String[] goal = sc.nextLine().split(" "); 17 | if (goal.length == 2) { 18 | int team = Integer.parseInt(goal[0]); 19 | int distance = Integer.parseInt(goal[1]); 20 | int points = distance == -1 ? 1 : distance <= 6 ? 2 : 3; 21 | if (team == 1) { 22 | firstTeam += points; 23 | } else secondTeam += points; 24 | } 25 | } 26 | 27 | PrintWriter out = new PrintWriter(System.out); 28 | out.println(firstTeam + ":" + secondTeam); 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /_other_tasks_/inverse_simple_module/InverseSimpleModule.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.inverse_simple_module; 2 | 3 | import java.io.*; 4 | 5 | public class InverseSimpleModule { 6 | 7 | private static long p = (long) (1e9 + 9); 8 | 9 | private static long func(long x, long n) { 10 | if (n == 0) { 11 | return 1; 12 | } 13 | if (n % 2 == 0) { 14 | return func(x * x % p, n / 2) % p; 15 | } else { 16 | return x * func(x, n - 1) % p; 17 | } 18 | } 19 | 20 | 21 | public static void main(String[] args) throws IOException { 22 | 23 | BufferedReader sc = new BufferedReader(new FileReader("input.txt")); 24 | PrintWriter out = new PrintWriter(System.out); 25 | 26 | long a; 27 | 28 | byte index = 0; 29 | 30 | for (String line; (line = sc.readLine()) != null; ) { 31 | if (index == 1) { 32 | a = Long.parseLong(line); 33 | out.println(func(a, p - 2)); 34 | } 35 | if (index == 0) { 36 | index = 1; 37 | } 38 | } 39 | 40 | out.flush(); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /_other_tasks_/kvn/Kvn.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.kvn; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.Scanner; 5 | 6 | public class Kvn { 7 | public static void main(String[] args) { 8 | Scanner sc = new Scanner(System.in); 9 | String[] line1 = sc.nextLine().split(" "); 10 | String[] line2 = sc.nextLine().split(" "); 11 | 12 | int play = 120; 13 | int obzor = 20; 14 | int obzorObzor = 3; 15 | 16 | long max = obzorObzor * Integer.parseInt(line1[0]) + obzor * Integer.parseInt(line1[1]) + play * Integer.parseInt(line1[2]); 17 | long mel = obzorObzor * Integer.parseInt(line2[0]) + obzor * Integer.parseInt(line2[1]) + play * Integer.parseInt(line2[2]); 18 | 19 | PrintWriter out = new PrintWriter(System.out); 20 | 21 | if (mel > max) { 22 | out.println("Mel"); 23 | } else if (max > mel) { 24 | out.println("Max"); 25 | } else { 26 | out.println("Draw"); 27 | } 28 | out.flush(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /_other_tasks_/large_prime_numbers/README.md: -------------------------------------------------------------------------------- 1 |

K1. Большие простые числа

2 |

Время: 1 сек.
Память: 64Mb

3 |

Найдите все простые в диапазоне [A..B].

4 |

Формат ввода

5 |

Даны 1 ≤ A ≤ B ≤ 1012. Дополнительно известно ∣B − A∣ ≤ 106.

6 |

Формат вывода

7 |

В строку все простые числа из диапазона в порядке возрастания.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
60 8061 67 71 73 79
23 | -------------------------------------------------------------------------------- /_other_tasks_/microbiology/Microbiology.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.microbiology; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class Microbiology { 9 | public static void main(String[] args) throws IOException { 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | String[] data = sc.nextLine().split(" "); 13 | long n = Long.parseLong(data[0]); 14 | long m = Long.parseLong(data[1]); 15 | 16 | long div = 1; 17 | long e = n; 18 | 19 | while (e > 0) { 20 | 21 | if (e % 2 == 1) { 22 | div *= n; 23 | } 24 | 25 | n *= n; 26 | e >>= 1; 27 | 28 | long r = div / m; 29 | if (r > 0) { 30 | div %= m; 31 | } 32 | 33 | n %= m; 34 | } 35 | 36 | PrintWriter out = new PrintWriter(System.out); 37 | out.println(div); 38 | out.flush(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /_other_tasks_/microbiology/README.md: -------------------------------------------------------------------------------- 1 |

C. Микробиология

2 |

Время: 1 сек.
Память: 512 Мб

3 |

В начале эксперимента по изучению деления бактерий в чашке Петри была одна бактерия. К концу каждого дня количество бактерий увеличивалось в N раз (то есть к концу первого дня, например, там было N бактерий). В конце N-го дня биологи разделили получившиеся бактерии на колонии по M бактерий и забрали в другие лаборатории. Сколько бактерий осталось после этого в чашке Петри? 4 |

5 |

Формат ввода

6 |

Входной файл содержит через пробел числа N и M (1 ≤ M, N ≤ 109).

7 |

Формат вывода

8 |

Выведите одно число — ответ к задаче.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
3 100127
10 12345664000
28 | -------------------------------------------------------------------------------- /_other_tasks_/multigraph/README.md: -------------------------------------------------------------------------------- 1 |

B3. Мультиграф

2 |

Время: 1 сек.
Память: 64Mb

3 |

Дан неориентированный невзвешенный граф. В графе возможны петли и кратные рёбра. Постройте такой новый граф без петель и кратных рёбер, что для любых двух вершин в нём расстояние равно расстоянию в исходном графе. Если вершины не связны, расстояние между ними бесконечность.

4 |

Формат ввода

5 |

На первой строке число вершин n и число рёбер m (1 ≤ n, m ≤ 100 000). Следующие m строк содержат пары чисел от 1 до n – рёбра графа.

6 |

Формат вывода

7 |

Новый граф в таком же формате. Рёбра можно выводить в произвольном формате.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 24 | 28 | 29 | 30 |
ВводВывод
3 5
19 | 1 1
20 | 1 3
21 | 2 1
22 | 1 2
23 | 2 3
3 3
25 | 1 2
26 | 1 3
27 | 2 3
31 | -------------------------------------------------------------------------------- /_other_tasks_/numbers/Numbers.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.numbers; 2 | 3 | import java.io.PrintWriter; 4 | import java.math.BigInteger; 5 | import java.util.Scanner; 6 | 7 | public class Numbers { 8 | public static void main(String[] args) { 9 | Scanner sc = new Scanner(System.in); 10 | PrintWriter out = new PrintWriter(System.out); 11 | String first = sc.nextLine().replaceAll("zero", "0").replaceAll("one", "1"); 12 | String second = sc.nextLine().replaceAll("zero", "0").replaceAll("one", "1"); 13 | 14 | BigInteger firstLong = new BigInteger(first); 15 | BigInteger secondLong = new BigInteger(second); 16 | 17 | if (firstLong.compareTo(secondLong) > 0) { 18 | out.println(">"); 19 | } else if (secondLong.compareTo(firstLong) > 0) { 20 | out.println("<"); 21 | } else { 22 | out.println("="); 23 | } 24 | 25 | out.flush(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /_other_tasks_/numeric_palindrome/README.md: -------------------------------------------------------------------------------- 1 |

E. Числовой палиндром

2 |

Время: 1 сек.
Память: 512 Мб

3 |

Числовой палиндром — целое положительное число, десятичная запись которого одинаково читается в обоих направлениях. Например, 9 и 12321 являются числовыми палиндромами, а 3434 и 1211 — нет. 4 |

5 |

На вход программы поступает набор цифр от 1 до 9. Разрешается переставлять и удалять цифры. Требуется из данных цифр составить числовой палиндром, задающий наибольшее число.

6 |

Формат ввода

7 |

В первой строке входных данных содержится целое число N (0 < N ≤ 105). Во второй строке задается последовательность из N цифр от 1 до 9.

8 |

Формат вывода

9 |

Выведите одно целое число — максимальный числовой палиндром, составляемый из данного набора цифр.

10 |

Примеры

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 |
ВводВывод
4
21 | 1123
131
26 | -------------------------------------------------------------------------------- /_other_tasks_/play/Play.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.play; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.ArrayList; 5 | import java.util.Scanner; 6 | 7 | public class Play { 8 | public static void main(String[] args) { 9 | Scanner sc = new Scanner(System.in); 10 | PrintWriter out = new PrintWriter(System.out); 11 | sc.nextLine(); 12 | String[] line = sc.nextLine().split(" "); 13 | 14 | ArrayList arr = new ArrayList<>(); 15 | 16 | for (int i = 0; i < line.length; i++) { 17 | if (Long.parseLong(line[i]) % 2 != (i+1) % 2) { 18 | arr.add(i+1); 19 | } 20 | } 21 | 22 | if (arr.size() == 2 && arr.get(0)%2 != arr.get(1)%2) { 23 | out.println(arr.get(0) + " " + arr.get(1)); 24 | } else if (arr.size() == 0 && line.length > 2) { 25 | out.println("1 3"); 26 | } else { 27 | out.println("-1 -1"); 28 | } 29 | 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /_other_tasks_/rapid_exponentiation/RapidExponentiation.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.rapid_exponentiation; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class RapidExponentiation { 9 | public static double multi(double x, long n) { 10 | if (n == 0) { 11 | return 1; 12 | } 13 | if (n % 2 == 0) { 14 | return multi(x * x, n / 2); 15 | } else { 16 | return x * multi(x, n - 1); 17 | } 18 | } 19 | 20 | public static void main(String[] args) throws FileNotFoundException { 21 | 22 | Scanner sc = new Scanner(new FileReader("input.txt")); 23 | PrintWriter out = new PrintWriter(System.out); 24 | double a = Double.parseDouble(sc.nextLine()); 25 | long n = Long.parseLong(sc.nextLine()); 26 | 27 | double res = multi(a, n); 28 | out.println(res); 29 | 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /_other_tasks_/search/Search.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.search; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.Scanner; 5 | 6 | public class Search { 7 | public static void main(String[] args) { 8 | Scanner sc = new Scanner(System.in); 9 | PrintWriter out = new PrintWriter(System.out); 10 | int n = sc.nextInt(); 11 | 12 | if (n == 1) { 13 | out.println(1); 14 | } else { 15 | out.println(0); 16 | } 17 | 18 | out.flush(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /_other_tasks_/second_above/README.md: -------------------------------------------------------------------------------- 1 |

B. Второй сверху

2 |

Время: 1 сек.
Память: 512 Мб

3 |

Аналого-цифровой преобразователь получает сигналы и кодирует их в виде целых положительных чисел, после чего последовательно передаёт в систему для обработки. Конец блока сигналов кодируется числом 0. 4 | Ваша задача — определить значение второго по величине элемента в первом блоке сигналов.

5 |

Формат ввода

6 |

На вход подаётся последовательность сигналов — целые неотрицательные числа, не превосходящие 109. 7 | Гарантируется, что в последовательности есть хотя бы одно число 0, а общее количество сигналов не превосходит 104.

8 |

Формат вывода

9 |

Выведите ответ на задачу.

10 |

Примеры

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 |
ВводВывод
1
21 | 7
22 | 9
23 | 0
7
28 | -------------------------------------------------------------------------------- /_other_tasks_/second_above/SecondAbove.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.second_above; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.ArrayList; 7 | import java.util.Comparator; 8 | import java.util.Scanner; 9 | 10 | public class SecondAbove { 11 | public static void main(String[] args) throws IOException { 12 | FileReader file = new FileReader("input.txt"); 13 | Scanner sc = new Scanner(file); 14 | 15 | ArrayList data = new ArrayList<>(); 16 | 17 | while (sc.hasNextLine()) { 18 | int num = Integer.parseInt(sc.nextLine()); 19 | 20 | if (num != 0) { 21 | data.add(num); 22 | } else { 23 | data.sort(Comparator.reverseOrder()); 24 | PrintWriter out = new PrintWriter(System.out); 25 | 26 | out.println(data.get(1)); 27 | out.flush(); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /_other_tasks_/tower/Tower.java: -------------------------------------------------------------------------------- 1 | package _other_tasks_.tower; 2 | 3 | import java.io.PrintWriter; 4 | import java.util.Scanner; 5 | 6 | public class Tower { 7 | public static void main(String[] args) { 8 | Scanner sc = new Scanner(System.in); 9 | PrintWriter out = new PrintWriter(System.out); 10 | sc.nextLine(); 11 | String[] line = sc.nextLine().split(" "); 12 | 13 | long a1 = Long.parseLong(line[0]); 14 | 15 | if (a1 % 3 == 0) { 16 | out.println(0); 17 | } else if (a1 % 3 == 1) { 18 | out.println(1); 19 | } else if (line.length == 1) { 20 | out.println(2); 21 | } else { 22 | long a2 = Long.parseLong(line[1]); 23 | if (a2 % 2 == 0) { 24 | out.println(1); 25 | } else { 26 | out.println(2); 27 | } 28 | } 29 | 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /a_plus_b/README.md: -------------------------------------------------------------------------------- 1 |

A+B (2%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 2%

3 |

Требуется сложить два целых числа А и В.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записаны два натуральных числа через пробел. Значения чисел не превышают 109.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести одно целое число — сумму чисел А и В.

8 |

Пример 1

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 23 | 24 |
ВводВывод
2 3 19 | 5 21 |
-------------------------------------------------------------------------------- /a_plus_b/Summ.java: -------------------------------------------------------------------------------- 1 | package a_plus_b; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | public class Summ { 6 | public static void main(String[] args) throws IOException { 7 | ArrayList numeric = new ArrayList<>(); 8 | int s = 0; 9 | String str; 10 | FileReader fin = new FileReader("input.txt"); // Получение чисел из файла 11 | Scanner sc = new Scanner(fin); 12 | str = sc.nextLine(); 13 | StringTokenizer st = new StringTokenizer(str, " "); 14 | while(st.hasMoreTokens()){ 15 | int a = Integer.valueOf(st.nextToken()); 16 | numeric.add(a); 17 | } 18 | for (Integer aNumeric : numeric) { 19 | s += aNumeric; 20 | } 21 | FileWriter countStepFinish = new FileWriter("output.txt");// Запись числа в файл 22 | countStepFinish.write(String.valueOf(s)); 23 | countStepFinish.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /abba_gold/AbbaGold.java: -------------------------------------------------------------------------------- 1 | package abba_gold; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class AbbaGold { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | String[] numbers = sc.nextLine().split(" "); 13 | BigInteger a = new BigInteger(numbers[0]); 14 | BigInteger b = new BigInteger(numbers[1]); 15 | BigInteger c = new BigInteger(numbers[2]); 16 | 17 | BigInteger result = a.max(b).max(c); 18 | PrintWriter out = new PrintWriter(System.out); 19 | out.println(result); 20 | out.flush(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /acm_world_finals/AcmWorldFnals.java: -------------------------------------------------------------------------------- 1 | package acm_world_finals; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class AcmWorldFnals { 7 | public static void main(String[] argv) throws IOException{ 8 | ArrayList data = new ArrayList<>(); // Все данные 9 | ArrayList names = new ArrayList<>(); // Имена участников 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | while (sc.hasNextLine()){ 13 | data.add(sc.nextLine()); 14 | } 15 | for(int i = 0; i < data.size(); i++){ 16 | if(i != 0){ 17 | names.add(data.get(i)); 18 | } 19 | } 20 | Collections.sort(names); 21 | System.out.println(data); 22 | String result = data.get(0) + ": " + String.join(", ", names); // Имена перечислить через запятую 23 | PrintWriter pw = new PrintWriter(new File("output.txt")); 24 | pw.print(result); 25 | pw.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /adjacent_cells/README.md: -------------------------------------------------------------------------------- 1 |

Соседние клетки (22%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 22%

3 |

Клетки шахматной доски пронумерованы числами от 1 до 64 по строкам слева направо и снизу вверх. Напишите программу, которая по заданному номеру клетки определяет номера всех клеток, имеющих с ней общую сторону.

4 |

Формат ввода

5 |

Входной файл input.txt содержит одно целое число от 1 до 64.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите через пробел в порядке возрастания номера всех клеток, имеющих с заданной общую сторону.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
21 3 10
6456 63
-------------------------------------------------------------------------------- /adjustment/README.md: -------------------------------------------------------------------------------- 1 |

Уравнение для 5 класса! (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Уравнение для пятиклассников представляет собой строку длиной 5 символов. Второй символ строки является либо знаком '+' (плюс) либо '-' (минус), четвёртый символ — знак '=' (равно). Из первого, третьего и пятого символов ровно два являются цифрами из диапазона от 0 до 9, и один — буквой x, обозначающей неизвестное.

4 |

Требуется написать программу, которая позволит решить данное уравнение относительно x.

5 |

Формат ввода

6 |

Входной файл input.txt состоит из одной строки, в которой записано уравнение.

7 |

Формат вывода

8 |

В выходной файл output.txt выведите целое число — значение x.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
x+5=72
3-x=9-6
-------------------------------------------------------------------------------- /alarm/Alarm.java: -------------------------------------------------------------------------------- 1 | package alarm; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Alarm { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList time = new ArrayList<>(); 9 | int result; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while (st.hasMoreTokens()){ 16 | time.add(Integer.valueOf(st.nextToken())); // Записать все элементы в коллекцию 17 | } 18 | result = (time.get(1) > time.get(0)) ? time.get(1) - time.get(0) : 12 + time.get(1) - time.get(0); 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(String.valueOf(result)); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /alcohol/Alcohol.java: -------------------------------------------------------------------------------- 1 | package alcohol; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Alcohol { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | long count = 0; 10 | long c, h, o; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while(st.hasMoreTokens()){ 17 | data.add (Long.valueOf(st.nextToken())); 18 | } 19 | c = data.get(0) / 2; 20 | h = data.get(1) / 6; 21 | o = data.get(2); 22 | if(c > 0 && h > 0 && o > 0){ 23 | count = (c < h && c < o) ? c : 24 | (h < c && h < o) ? h : o; 25 | } 26 | FileWriter fileOut = new FileWriter("output.txt"); 27 | fileOut.write(String.valueOf(count)); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /alien/Alien.java: -------------------------------------------------------------------------------- 1 | package alien; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Alien { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | String out; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | data.add(Integer.valueOf(st.nextToken())); 17 | } 18 | out = (data.get(0)*2 >= data.get(1)*2 + data.get(2)*2) ? "YES" : "NO"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(out); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /amount_two/AmountTwo.java: -------------------------------------------------------------------------------- 1 | package amount_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.*; 7 | 8 | public class AmountTwo { 9 | public static void main(String[] args) throws IOException { 10 | PrintWriter out = new PrintWriter(System.out); 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | int number = sc.nextInt(); 14 | 15 | if (number < 4) { 16 | out.println(0); 17 | } else { 18 | int count = 0; 19 | for (int a = 1; a < number/2; a++) { 20 | for (int b = a; b < number/2; b++) { 21 | if (a + b < number - 1) { 22 | for (int c = b; c < number/2; c++) { 23 | int d = number - (a + b + c); 24 | if (d >= c) { 25 | count++; 26 | } 27 | } 28 | } 29 | } 30 | } 31 | 32 | out.println(count); 33 | } 34 | out.flush(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /amount_two/README.md: -------------------------------------------------------------------------------- 1 |

Сумма - 2 (30%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 30%

4 |

Задано натуральное число x. Найдите число способов представить его в виде суммы четырех натуральных чисел: x = a + b + c + d, где a ≤ b ≤ c ≤ d.

5 |

Формат ввода

6 |

Входной файл input.txt содержит целое число x (1 ≤ x ≤ 1500).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ на задачу.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
30
51
-------------------------------------------------------------------------------- /anagrams/README.md: -------------------------------------------------------------------------------- 1 |

Анаграммы (26%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 26%

3 |

Cтрока S1 называется анаграммой строки S2, если она получается из S2 перестановкой символов. Даны строки S1 и S2. Напишите программу, которая проверяет, является ли S1 анаграммой S2.

4 |

Формат ввода

5 |

Первая строка входного файла input.txt содержит строку S1, вторая - S2. Обе строки состоят только из прописных букв английского алфавита. Строки не пусты и имеют длину не больше 100000 символов.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите YES, если S1 является анаграммой S2, и NO - в противном случае.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 |
ВводВывод
ABAA
19 | ABBA
NO
ABBA
24 | BABA
YES
-------------------------------------------------------------------------------- /anti_palindrome/AntiPalindrome.java: -------------------------------------------------------------------------------- 1 | package anti_palindrome; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.HashSet; 7 | import java.util.Scanner; 8 | import java.util.Set; 9 | 10 | public class AntiPalindrome { 11 | public static void main(String[] args) throws IOException { 12 | Set symbols = new HashSet<>(); 13 | 14 | Scanner sc = new Scanner(new FileReader("input.txt")); 15 | String str = sc.nextLine(); 16 | 17 | char[] ch = str.toCharArray(); 18 | boolean palindrome = true; 19 | int j = 0; 20 | for (int i = str.length()-1; i >= 0; i--){ 21 | if(ch[j] != ch[i]){ 22 | palindrome = false; 23 | } 24 | symbols.add(ch[i]); 25 | j++; 26 | } 27 | 28 | String result = (symbols.size() == 1) ? "NO SOLUTION" : 29 | (!palindrome) ? str : str.substring(0, str.length()-1); 30 | 31 | FileWriter out = new FileWriter("output.txt"); 32 | out.write(String.valueOf(result)); 33 | out.close(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /anti_palindrome/README.md: -------------------------------------------------------------------------------- 1 |

Антипалиндром (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Палиндромом называют строку, читающуюся одинаково с обеих сторон. Задана строка s. Найдите ее наибольшую по длине подстроку, не являющуюся палиндромом.

4 |

Формат ввода

5 |

Входной файл input.txt содержит строку s. Она состоит только из строчных букв английского алфавита, не пуста, а ее длина не превышает 100 000 символов.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите ответ на задачу. Если все подстроки s являются палиндромами, выведите в выходной файл NO SOLUTION.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ВводВывод
abbaabb
abcabc
aaaaaNO SOLUTION
-------------------------------------------------------------------------------- /area_triangle/README.md: -------------------------------------------------------------------------------- 1 |

Площадь треугольника (15%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 15%

3 |

По целочисленным координатам вершин треугольника (x1,y1), (x2,y2) и (x3,y3) требуется вычислить его площадь.

4 |

Формат ввода

5 |

Входной файл input.txt содержит 6 целых чисел x1,y1,x2,y2,x3,y3 – координаты вершин треугольника. Все числа не превышают 106 по абсолютной величине.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите точное значение площади заданного треугольника.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
2 1 2 4 6 16
0 0 0 3 3 04.5
27 | -------------------------------------------------------------------------------- /arithmetic/Arithmetic.java: -------------------------------------------------------------------------------- 1 | package arithmetic; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Arithmetic { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList number = new ArrayList<>(); 9 | String summ; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); // 1 цифра 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while (st.hasMoreTokens()){ 16 | number.add(Integer.valueOf(st.nextToken())); 17 | } 18 | summ = (number.get(0) * number.get(1) == number.get(2)) ? "YES" : "NO"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(summ); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /arithmetic_progression/ArithmeticProgression.java: -------------------------------------------------------------------------------- 1 | package arithmetic_progression; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class ArithmeticProgression { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); // Входные данные 9 | int step; // Шаг програессии 10 | int result; // Результат вычислений 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | String str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while (st.hasMoreTokens()){ 16 | data.add(Integer.valueOf(st.nextToken())); 17 | } 18 | step = data.get(1) - data.get(0); // Вычисление шага 19 | result = data.get(0) + (data.get(2) - 1) * step; // Вычисление n-члена прогрессии 20 | FileWriter fileOut = new FileWriter("output.txt"); 21 | fileOut.write(String.valueOf(result)); 22 | fileOut.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /arithmetic_progression/README.md: -------------------------------------------------------------------------------- 1 |

Арифметическая прогрессия (15%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 15%

3 |

Заданы первый и второй элементы арифметической прогрессии. Требуется написать программу, которая вычислит элемент прогрессии по ее номеру.

4 |

Формат ввода

5 |

Входной файл input.txt содержит три целых числа, разделенных пробелами – первый элемент прогрессии A1 (1 ≤ A1 ≤ 1000), второй элемент прогрессии A2 (1 ≤ A2 ≤ 1000), и номер требуемого элемента N (1 ≤ N ≤ 1000).

6 |

Формат вывода

7 |

Выходной файл output.txt должен содержать одно целое число - N-й элемент арифметической прогрессии.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
1 5 39
23 | -------------------------------------------------------------------------------- /arrows/Arrows.java: -------------------------------------------------------------------------------- 1 | package arrows; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | import java.util.regex.*; 6 | 7 | public class Arrows { 8 | private static int count = 0; 9 | private static void arrowCount() throws IOException{ // Получение данных 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | String str = sc.nextLine(); // Формируем строку из файла 13 | Matcher one = Pattern.compile("(?=(>>-->)|(<--<<))").matcher(str); // Проверяем наличие всех стрелок регулярным выражением 14 | while (one.find()){ // Считаем количество стрелок 15 | count++; 16 | } 17 | } 18 | public static void main(String[] argv) throws IOException{ 19 | arrowCount(); 20 | PrintWriter pw = new PrintWriter(new File("output.txt")); 21 | pw.print(String.valueOf(count)); 22 | pw.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /arrows/README.md: -------------------------------------------------------------------------------- 1 |

Стрелки (20%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 20%

3 |

Задана последовательность, состоящая только из символов ‘>’, ‘<’ и ‘-‘. Требуется найти количество стрел, которые спрятаны в этой последовательности. Стрелы – это подстроки вида ‘>>-->’ и ‘<--<<’.

4 |

Формат ввода

5 |

В первой строке входного файла input.txt записана строка, состоящая из символов ‘>’, ‘<’ и ‘-‘ (без пробелов). Строка состоит не более, чем из 250 символов.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести искомое количество стрелок.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
<<<<>>--><--<<--<<>>>--><<<<<4
23 | 24 | -------------------------------------------------------------------------------- /automorphic_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Автоморфные числа (26%)

2 |

Время: 2 сек.
Память: 16 Мб
Сложность: 26%

3 |

Число называется автоморфным если оно совпадает с последними цифрами своего квадрата. Например, число 25 автоморфно, так как 252=625. Напишите программу определения всех автомофных чисел на заданном промежутке [a, b].

4 |

Формат ввода

5 |

Входной файл input.txt содержит два натуральных числа a и b (a ≤ b ≤ 106).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите через пробел в порядке возрастания все автоморфные числа заданного промежутка.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
1 101 5 6
-------------------------------------------------------------------------------- /beads/Beads.java: -------------------------------------------------------------------------------- 1 | package beads; 2 | 3 | import java.io.*; 4 | import java.util.Scanner; 5 | 6 | public class Beads { 7 | public static void main(String[] args) throws IOException { 8 | int numeric; 9 | String str; 10 | FileReader fin = new FileReader("input.txt"); // Получение числа из файла 11 | Scanner sc = new Scanner(fin); 12 | str = sc.nextLine(); 13 | numeric = Integer.valueOf(str) + 1; 14 | FileWriter countStepFinish = new FileWriter("output.txt");// Запись числа в файл 15 | countStepFinish.write(String.valueOf(numeric)); 16 | countStepFinish.close(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /beads/README.md: -------------------------------------------------------------------------------- 1 |

Бисер (2%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 2%

3 |

В шкатулке хранится разноцветный бисер (или бусины). Все бусины имеют одинаковую форму, размер и вес. Бусины могут быть одного из N различных цветов. В шкатулке много бусин каждого цвета.

4 |

Требуется определить минимальное число бусин, которые можно не глядя вытащить из шкатулки так, чтобы среди них гарантированно были две бусины одного цвета.

5 |

Формат ввода

6 |

Входной файл input.txt содержит одно натуральное число N - количество цветов бусин (1 ≤ N ≤ 109).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ на поставленную задачу.

9 |

Пример 1

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 23 | 24 | 25 |
ВводВывод
3 20 | 4 22 |
-------------------------------------------------------------------------------- /beautiful_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Красивые числа - 2 (26%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 26%

3 |

Будем называть число красивым, если сумма его цифр в десятичной системе счисления делится на количество цифр в нем (в десятичной системе счисления).

4 |

Необходимо найти N-ое в порядке возрастания красивое число.

5 |

Формат ввода

6 |

Входной файл input.txt содержит целое число N. (1 ≤ N ≤ 100 000)

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ на задачу.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
115
1520
-------------------------------------------------------------------------------- /bell/README.md: -------------------------------------------------------------------------------- 1 |

Колокол (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Требуется написать программу, которая в массиве из n целых чисел наименьший элемент поместит на первое место, наименьший из оставшихся – на последнее, следующий по величине – на второе место, следующий – на предпоследнее и так далее – до середины массива.

4 |

Формат ввода

5 |

Во входном файле input.txt записано в первой строке число n (1 ≤ n ≤ 30000). Во второй строке записаны через пробел элементы массива, числа по абсолютной величине не большие 32767.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести элементы полученного массива, разделенные одним пробелом.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
ВводВывод
5
19 | 1 2 3 4 5
1 3 5 4 2
-------------------------------------------------------------------------------- /binary_numbers/BinaryNumbers.java: -------------------------------------------------------------------------------- 1 | package binary_numbers; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class BinaryNumbers { 7 | public static void main(String[] args) throws IOException { 8 | String out = "YES"; 9 | String str; 10 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 11 | Scanner sc = new Scanner(file); 12 | str = sc.nextLine(); 13 | int strInt = Integer.valueOf(str); 14 | if(strInt <= 0){ 15 | out = "NO"; 16 | }else{ 17 | while(strInt > 1){ 18 | if(strInt%2 == 0){ // Проверка четности остатка 19 | strInt = strInt / 2; // Следующее число 20 | }else{ 21 | out = "NO"; 22 | break; 23 | } 24 | } 25 | } 26 | FileWriter fileOut = new FileWriter("output.txt"); 27 | fileOut.write(out); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /bit_reverse/BitReverse.java: -------------------------------------------------------------------------------- 1 | package bit_reverse; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class BitReverse { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | long data = sc.nextInt(); 13 | String dataSystemTwo = new BigInteger(String.valueOf(data)).toString(2); 14 | 15 | char[] ch = dataSystemTwo.toCharArray(); 16 | StringBuilder revers = new StringBuilder(); 17 | for(int i = ch.length-1; i >= 0; i--){ 18 | revers.append(String.valueOf(ch[i])); 19 | } 20 | 21 | String reversNumber = revers.length() > 0 ? String.valueOf(revers) : "0"; 22 | BigInteger reversSystemTen = new BigInteger(reversNumber, 2); 23 | 24 | FileWriter out = new FileWriter("output.txt"); 25 | out.write(String.valueOf(reversSystemTen)); 26 | out.close(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /bit_reverse/README.md: -------------------------------------------------------------------------------- 1 |

Бит-реверс (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Целое положительное число m записывается в двоичной системе счисления, разряды (в этой записи) переставляются в обратном порядке и число переводится в десятичную систему счисления. Получившееся число принимается за значение функции B(m).

4 |

Требуется написать программу, которая для заданного m вычислит B(m).

5 |

Формат ввода

6 |

Входной файл input.txt содержит натуральное число m (m ≤ 109).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите значение B(m).

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
41
63
-------------------------------------------------------------------------------- /building_of_schools/BuildingOfSchools.java: -------------------------------------------------------------------------------- 1 | package building_of_schools; 2 | 3 | import java.io.*; 4 | import java.util.StringTokenizer; 5 | 6 | public class BuildingOfSchools { 7 | public static void main(String[] args) throws IOException { 8 | BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 9 | PrintWriter out = new PrintWriter(System.out); 10 | 11 | int n = Integer.parseInt(in.readLine()); 12 | StringTokenizer st = new StringTokenizer(in.readLine(), " "); 13 | int index = 0; 14 | while (st.hasMoreTokens() && index < n/2+1) { 15 | String point = st.nextToken(); 16 | if (index == n/2) { 17 | out.println(point); 18 | } 19 | index++; 20 | } 21 | out.flush(); 22 | } 23 | } -------------------------------------------------------------------------------- /cake/Cake.java: -------------------------------------------------------------------------------- 1 | package cake; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Cake { 7 | public static void main(String[] args) throws IOException { 8 | int number; 9 | int guest; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | guest = Integer.valueOf(str); 15 | number = (guest == 1) ? 0 : 16 | (guest % 2 == 1) ? guest : guest / 2; 17 | FileWriter fileOut = new FileWriter("output.txt"); 18 | fileOut.write(String.valueOf(number)); 19 | fileOut.close(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /cake_two/CakeTwo.java: -------------------------------------------------------------------------------- 1 | package cake_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class CakeTwo { 9 | private static int _gcd(int a, int b) { 10 | if (b == 0) return a; 11 | else return _gcd(b, a % b); 12 | } 13 | 14 | public static void main(String[] args) throws IOException { 15 | String[] data = new Scanner(new FileReader("input.txt")).nextLine().split(" "); 16 | int m = Integer.parseInt(data[0]); 17 | int n = Integer.parseInt(data[1]); 18 | 19 | int res = m + n - _gcd(m, n); 20 | 21 | PrintWriter out = new PrintWriter(System.out); 22 | out.println(res); 23 | out.flush(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /cake_two/README.md: -------------------------------------------------------------------------------- 1 |

Торт - 2 (32%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 32%

4 |

Никифор на день рождения собирается угостить друзей тортом. Известно, что на дне рождения может быть либо M, либо N человек, включая самого именинника. На какое минимальное количество частей ему нужно разрезать торт (не обязательно всех равных), чтобы при любом из указанных количеств собравшихся, все съели торт поровну?

5 |

Формат ввода

6 |

7 | Входной файл INPUT.TXT содержит два натуральных числа M и N через пробел (1 ≤ M, N ≤ 30000). 8 |

9 |

Формат вывода

10 |

11 | В выходной файл OUTPUT.TXT выведите единственное число – искомое минимальное количество кусочков торта. 12 |

13 |

Примеры

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
2 34
-------------------------------------------------------------------------------- /castle/README.md: -------------------------------------------------------------------------------- 1 |

Замок (29%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 29%

4 |

Замок состоит из K уровней. Каждый уровень - это правильный N-угольник, угол которого совпадает с углом предыдущего. На сторонах первого уровня находится по две комнаты (в углах), на сторонах каждого следующего - на одну больше. Сколько в замке комнат?

5 |

Формат ввода

6 |

В первой строке входного файла input.txt указаны два целых числа N и K (3 ≤ N ≤ 106; 1 ≤ K ≤ 106).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите целое число - количество комнат в замке.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
6 328
-------------------------------------------------------------------------------- /chess_field/ChessField.java: -------------------------------------------------------------------------------- 1 | package chess_field; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class ChessField { 7 | private static ArrayList coordinate = new ArrayList<>(); 8 | private static void getData() throws IOException{ 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | coordinate.add(Integer.valueOf(st.nextToken()) % 2); 15 | } 16 | } 17 | public static void main(String[] argv) throws IOException{ 18 | getData(); 19 | String result = (coordinate.get(0).equals(coordinate.get(1)) && coordinate.get(2).equals(coordinate.get(3)) || 20 | !coordinate.get(0).equals(coordinate.get(1)) && !coordinate.get(2).equals(coordinate.get(3))) ? "YES" : "NO"; 21 | PrintWriter pw = new PrintWriter(new File("output.txt")); 22 | pw.print(result); 23 | pw.close(); 24 | } 25 | } -------------------------------------------------------------------------------- /chess_field/README.md: -------------------------------------------------------------------------------- 1 |

Шахматное поле (16%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 16%

3 |

На стандартной шахматной доске 8х8 заданы координаты двух клеток. Требуется определить: имеют ли данные клетки одинаковый цвет?

4 |

Формат ввода

5 |

Входной файл input.txt содержит целые числа x1, y1, x2, y2, описывающие координаты двух клеток (x1,y1) и (x2,y2). Ограничения: 1 ≤ x1,y1,x2,y2 ≤ 8.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите YES, если поля одного цвета, или слово NO в противном случае.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
1 1 4 4YES
1 2 7 5NO
27 | 28 | -------------------------------------------------------------------------------- /chessboard_figure/README.md: -------------------------------------------------------------------------------- 1 |

Шахматная доска (26%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 26%

3 |

Из шахматной доски по границам клеток выпилили связную (не распадающуюся на части) фигуру без дыр. Требуется определить ее периметр.

4 |

Формат ввода

5 |

Во входном файле input.txt сначала записано число N (1 ≤ N ≤ 64) – количество выпиленных клеток. В следующих N строках указаны координаты выпиленных клеток, разделенные пробелом (номер строки и столбца – числа от 1 до 8). Каждая выпиленная клетка указывается один раз.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите одно число – периметр выпиленной фигуры (сторона клетки равна единице).

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 |
ВводВывод
3
19 | 1 1
20 | 1 2
21 | 2 1
8
1
26 | 8 8
4
-------------------------------------------------------------------------------- /circle/Circle.java: -------------------------------------------------------------------------------- 1 | package circle; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Circle { 7 | public static void main(String[] args) throws IOException { 8 | FileReader file = new FileReader("input.txt"); 9 | Scanner sc = new Scanner(file); 10 | String str = sc.nextLine(); 11 | char[] ch = str.toCharArray(); 12 | long flag = 0; 13 | for (char aCh : ch) { 14 | String symbol = Character.toString(aCh); 15 | switch (symbol) { 16 | case ("6"): 17 | flag++; 18 | break; 19 | case ("8"): 20 | flag = flag + 2; 21 | break; 22 | case ("9"): 23 | flag++; 24 | break; 25 | case ("0"): 26 | flag++; 27 | break; 28 | } 29 | } 30 | FileWriter fileOut = new FileWriter("output.txt"); 31 | fileOut.write(String.valueOf(flag)); 32 | fileOut.close(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /circle_two/CircleTwo.java: -------------------------------------------------------------------------------- 1 | package circle_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class CircleTwo { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | int data = sc.nextInt(); 12 | 13 | int result = data == 0 ? 1 : 2 + (data - 1) * data; 14 | 15 | FileWriter out = new FileWriter("output.txt"); 16 | out.write(String.valueOf(result)); 17 | out.close(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /circle_two/README.md: -------------------------------------------------------------------------------- 1 |

Окружности (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

На какое максимальное число областей можно разбить плоскость при помощи N окружностей одинакового радиуса?

4 |

Формат ввода

5 |

Входной файл input.txt содержит целое число N – количество окружностей, 0 ≤ N ≤ 33333.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите одно число – максимальное количество областей, на которое можно разбить плоскость при помощи N окружностей одинакового радиуса.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
01
38
-------------------------------------------------------------------------------- /circle_two/image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allicen/Java-1000/614c2af783aa651aed2d996bdb3cfd18c1c6fc03/circle_two/image.gif -------------------------------------------------------------------------------- /coin_two/CoinTwo.java: -------------------------------------------------------------------------------- 1 | package coin_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | import java.util.StringTokenizer; 8 | 9 | public class CoinTwo { 10 | public static void main(String[] args) throws IOException { 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner scan = new Scanner(file); 13 | StringTokenizer st = new StringTokenizer(scan.nextLine(), " "); 14 | long n = Integer.valueOf(st.nextToken()); 15 | long w = Integer.valueOf(st.nextToken()); 16 | long d = Integer.valueOf(st.nextToken()); 17 | long p = Long.valueOf(st.nextToken()); 18 | 19 | long numberBasket = 0; 20 | int rightWeight = 0; 21 | 22 | for(int i = 1; i < n; i++){ 23 | rightWeight += (w * i); 24 | } 25 | 26 | numberBasket = rightWeight == p ? n : (rightWeight - p) / d; 27 | 28 | FileWriter out = new FileWriter("output.txt"); 29 | out.write(String.valueOf(numberBasket)); 30 | out.close(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /construction_of_roads/ConstructionOfRoads.java: -------------------------------------------------------------------------------- 1 | package construction_of_roads; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class ConstructionOfRoads { 10 | public static void main(String[] args) throws IOException { 11 | int n = Integer.parseInt(new Scanner(new FileReader("input.txt")).nextLine()); 12 | PrintWriter out = new PrintWriter(System.out); 13 | BigInteger res = BigInteger.valueOf(3).pow((n*(n-1))/2); 14 | out.println(res); 15 | out.flush(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /crane/Crane.java: -------------------------------------------------------------------------------- 1 | package crane; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class Crane { 9 | public static void main(String[] args) throws IOException { 10 | String result; 11 | int countBoys; 12 | int countGirl; 13 | int in; 14 | String str; 15 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 16 | Scanner sc = new Scanner(file); 17 | str = sc.nextLine(); 18 | in = Integer.valueOf(str); 19 | countBoys = in / 6; 20 | countGirl = in - countBoys * 2; 21 | result = countBoys + " " + countGirl + " " + countBoys; 22 | FileWriter fileOut = new FileWriter("output.txt"); 23 | fileOut.write(result); 24 | fileOut.close(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /cut/Cut.java: -------------------------------------------------------------------------------- 1 | package cut; 2 | 3 | import java.io.*; 4 | import java.text.DecimalFormat; 5 | import java.util.*; 6 | 7 | public class Cut { 8 | public static void main(String[] args) throws IOException { 9 | ArrayList point = new ArrayList<>(); // Координаты точек 10 | double result; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while (st.hasMoreTokens()){ 17 | point.add(Double.valueOf(st.nextToken())); 18 | } 19 | result = Math.sqrt(Math.pow(point.get(3) - point.get(1), 2) + Math.pow(point.get(2) - point.get(0), 2)); // Вычисление длины отрезка 20 | String pattern = "##0.00000"; // Формат вывода 21 | DecimalFormat decimalFormat = new DecimalFormat(pattern); 22 | String format = decimalFormat.format(result); 23 | FileWriter fileOut = new FileWriter("output.txt"); 24 | fileOut.write(format.replace(",",".")); // Замена запятой на точку по условиям задачи 25 | fileOut.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /cut/README.md: -------------------------------------------------------------------------------- 1 |

Длина отрезка (12%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 12%

3 |

Отрезок задан координатами своих концевых точек. Требуется вычислить длину этого отрезка.

4 |

Формат ввода

5 |

Входной файл INPUT.TXT содержит координаты концов отрезка в формате X1 Y1 X2 Y2 . Все координаты – целые числа, не превышающие 1000 по абсолютной величине.

6 |

Формат вывода

7 |

В выходной файл OUTPUT.TXT выведите длину отрезка с точностью 10-5.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
3 4 8 45
-------------------------------------------------------------------------------- /deletion/README.md: -------------------------------------------------------------------------------- 1 |

Вычеркивание (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Задано натуральное число N. Требуется написать программу, вычисляющую количество различных трехзначных чисел получающихся из N вычеркиванием цифр из его десятичной записи.

4 |

Формат ввода

5 |

Входной текстовый файл input.txt содержит одно натуральное число N (1 ≤ N ≤ 10100).

6 |

Формат вывода

7 |

Выходной текстовый файл output.txt должен содержать одно целое число - найденное количество трехзначных чисел.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
120
1111111111100111111114
-------------------------------------------------------------------------------- /delta/Delta.java: -------------------------------------------------------------------------------- 1 | package delta; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Delta { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | String result; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while (st.hasMoreTokens()){ 16 | data.add(Integer.valueOf(st.nextToken())); 17 | } 18 | result = (data.get(0) < data.get(1) + data.get(2) && data.get(1) < data.get(0) + data.get(2) && data.get(2) < data.get(0) + data.get(1)) ? "YES" : "NO"; // Проверка на вырожденность 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(result); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /delta/README.md: -------------------------------------------------------------------------------- 1 |

Треугольник - 3 (12%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 12%

3 |

Даны длины трех отрезков. Требуется проверить: могут ли они являться сторонами невырожденного треугольника.

4 |

Формат ввода

5 |

Входной файл input.txt содержит 3 натуральных числа X Y Z – длины заданных отрезков. Длины отрезков записаны в одной строке через пробел и не превышают 1000.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите YES, если отрезки могут быть сторонами треугольника и NO в противном случае.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
3 4 5YES
1 1 5NO
-------------------------------------------------------------------------------- /different_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Разные цифры (27%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

3 |

Требуется написать программу, определяющую, в каких системах счисления с основаниями от 2 до 36 это число не содержит одинаковых цифр.

4 |

Формат ввода

5 |

Входной файл input.txt содержит одно целое число N (1 ≤ N ≤ 109), записанное в десятичной системе счисления.

6 |

Формат вывода

7 |

Выходной файл output.txt должен содержать основания систем счисления в порядке возрастания, разделенные одним пробелом.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
10011 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36
-------------------------------------------------------------------------------- /digits/README.md: -------------------------------------------------------------------------------- 1 |

Цифры (27%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

3 |

Составить программу, удаляющую одну цифру из N-значного числа, такую, чтобы плюс-минус сумма была наибольшей. Плюс-минус сумма – это сумма с чередованием цифр числа с разными знаками: для числа 764 это +7-6+4. Если удалить цифру 7, то будет +6-4=2, если удалить цифру 6, то будет +7-4=3, если удалить цифру 4, то будет +7-6=1. При этом видно, что максимум достигается при удалении средней цифры 6 и равен 3.

4 |

Формат ввода

5 |

Во входном файле input.txt записано натуральное N-значное число (2 ≤ N ≤ 50).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите значение наибольшей суммы.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
7643
627486114
-------------------------------------------------------------------------------- /digits_after_point/README.md: -------------------------------------------------------------------------------- 1 |

Цифры после запятой (26%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 26%

3 |

По заданным натуральным числам A и B найти K-ю цифру после запятой в дроби A/B в десятичной системе счисления.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записано три натуральных числа A, B и K через пробел. А и B – цифры (числа от 1 до 9), число K не превышает 106.

6 |

Формат вывода

7 |

В выходной файл output.txt нужно вывести ответ на задачу.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
7 4 25
1 6 136
-------------------------------------------------------------------------------- /divider/Divider.java: -------------------------------------------------------------------------------- 1 | package divider; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Divider{ 7 | public static void main(String[] argv) throws IOException{ 8 | Scanner sc = new Scanner(new File("input.txt")); 9 | int a= sc.nextInt(), b= sc.nextInt(); 10 | while(a != b){ 11 | if(a > b) a = a - b; 12 | else b = b - a; 13 | } 14 | PrintWriter pw = new PrintWriter(new File("output.txt")); 15 | pw.print(a); 16 | pw.close(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /divider/README.md: -------------------------------------------------------------------------------- 1 |

НОД (15%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 15%

3 |

Даны два натуральных числа A и B. Требуется найти их наибольший общий делитель (НОД).

4 |

Формат ввода

5 |

Во входном файле input.txt в единственной строке записаны натуральные числа A и B через пробел (A, B ≤ 109).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите НОД чисел А и В.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
12 426
23 | -------------------------------------------------------------------------------- /divider_two/DividerTwo.java: -------------------------------------------------------------------------------- 1 | package divider_two; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class DividerTwo { 7 | public static void main(String[] args){ 8 | Scanner i = new Scanner(System.in); 9 | PrintWriter o = new PrintWriter(System.out); 10 | int a = i.nextInt(), b = i.nextInt(); 11 | while (a != b){ 12 | if(a > b) a = a - b; 13 | else b = b - a; 14 | } 15 | o.print(a); 16 | o.flush(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /divination/Divination.java: -------------------------------------------------------------------------------- 1 | package divination; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Divination { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList numbers = new ArrayList<>(); 9 | int result = 0; 10 | int str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = Integer.valueOf(sc.nextLine()); 14 | for(int i = 1000; i >= 1; i--){ 15 | if(str%i == 0){ 16 | numbers.add(str/i); 17 | } 18 | } 19 | for(Integer i : numbers){ 20 | result += i; 21 | } 22 | FileWriter fileOut = new FileWriter("output.txt"); 23 | fileOut.write(String.valueOf(result)); 24 | fileOut.close(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /divination/README.md: -------------------------------------------------------------------------------- 1 |

Гадание (13%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 13%

3 |

Как и многие другие девочки, Маша любит разные гадания. Некоторое время назад Маша узнала новый способ гадать на числах – для какого-нибудь интересующего ее натурального числа n надо посчитать сумму всех чисел, на которые n делится без остатка. Маша не очень любит арифметику, и попросила вас написать программу, которая автоматизирует процесс гадания.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записано натуральное число n (n ≤ 1000), которое Маша была вынуждена сообщить.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите сумму всех натуральных делителей числа n.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
612
1018
-------------------------------------------------------------------------------- /division_two/DivisionTwo.java: -------------------------------------------------------------------------------- 1 | package division_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class DivisionTwo { 9 | public static void main(String[] args) throws IOException { 10 | PrintWriter out = new PrintWriter(System.out); 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | long number = sc.nextLong(); 13 | 14 | while (number >= 1) { 15 | if (number % 2 == 0) { 16 | number /= 2; 17 | } else if (number % 5 == 0) { 18 | number /= 5; 19 | } else { 20 | break; 21 | } 22 | } 23 | 24 | if (number == 1) { 25 | out.println("NO"); 26 | } else { 27 | out.println("YES"); 28 | } 29 | 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /dots_on_dominoes/DotsOnDominoes.java: -------------------------------------------------------------------------------- 1 | package dots_on_dominoes; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.*; 7 | 8 | public class DotsOnDominoes { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | int maxDots = sc.nextInt(); 12 | long count = 0; 13 | for(int i = 0; i <= maxDots; i++){ 14 | for(int j = 0; j <= maxDots; j++){ 15 | if(i <= j){ 16 | count += (i+j); 17 | } 18 | } 19 | } 20 | 21 | System.out.println(count); 22 | 23 | FileWriter out = new FileWriter("output.txt"); 24 | out.write(String.valueOf(count)); 25 | out.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /eleven/Eleven.java: -------------------------------------------------------------------------------- 1 | package eleven; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Eleven { 7 | private static String number; 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | number = sc.nextLine(); 12 | } 13 | 14 | public static void main(String[] argv) throws IOException{ 15 | getData(); 16 | 17 | long summEven = 0, summOdd = 0; 18 | char[] chNumber = number.toCharArray(); 19 | 20 | for(int i = 0; i < chNumber.length; i++){ 21 | if(i%2 == 0){ 22 | summEven += chNumber[i] - '0'; 23 | }else{ 24 | summOdd += chNumber[i] - '0'; 25 | } 26 | } 27 | 28 | String result = (summEven == summOdd || Math.abs(summEven - summOdd) % 11 == 0) ? "YES" : "NO"; 29 | 30 | PrintWriter pw = new PrintWriter(new File("output.txt")); 31 | pw.print(result); 32 | pw.close(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /eleven/README.md: -------------------------------------------------------------------------------- 1 |

Делимость на 11 (22%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 22%

3 |

Для делимости числа на 11 необходимо, чтобы разность между суммой цифр, стоящих на четных местах, и суммой цифр, стоящих на нечетных местах, делилась на 11.

4 |

Требуется написать программу, которая проверит делимость заданного числа на 11.

5 |

Формат ввода

6 |

Входной файл INPUT.TXT содержит одно натуральное число N, делимость которого надо проверить (1 ≤ N ≤ 1010000).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите “YES”, если число делится на 11, или “NO” иначе.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
121YES
1211NO
28 | 29 | -------------------------------------------------------------------------------- /eniya/Eniya.java: -------------------------------------------------------------------------------- 1 | package eniya; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Eniya { 7 | public static void main(String[] args) throws IOException { 8 | int weight; 9 | ArrayList number = new ArrayList<>(); 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | number.add(Integer.valueOf(st.nextToken())); 17 | } 18 | weight = number.get(1) * number.get(2) * 2 * number.get(0); 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(String.valueOf(weight)); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /evolution/Evolution.java: -------------------------------------------------------------------------------- 1 | package evolution; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class Evolution { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | sc.nextLine(); 13 | BigInteger first = new BigInteger(sc.nextLine()); 14 | BigInteger second = new BigInteger(sc.nextLine()); 15 | 16 | PrintWriter out = new PrintWriter(System.out); 17 | 18 | while (first.compareTo(second) != 0) { 19 | if (first.compareTo(second) > 0) { 20 | first = first.divide(BigInteger.TWO); 21 | } else { 22 | second = second.divide(BigInteger.TWO); 23 | } 24 | } 25 | out.println(first); 26 | out.flush(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /factorial/Factorial.java: -------------------------------------------------------------------------------- 1 | package factorial; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class Factorial { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | String[] line = sc.nextLine().split(" "); 12 | 13 | int number = Integer.valueOf(line[0]); 14 | int factorials = line[1].length(); 15 | 16 | int result = number; 17 | int k = 1; 18 | while (number - k * factorials > 0){ 19 | result *= (number - k * factorials); 20 | k++; 21 | } 22 | 23 | FileWriter out = new FileWriter("output.txt"); 24 | out.write(String.valueOf(result)); 25 | out.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /fibonacci/Fibonacci.java: -------------------------------------------------------------------------------- 1 | package fibonacci; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | 7 | public class Fibonacci { 8 | private static int result; 9 | private static void run(int number){ // Расчет числа Фибоначчи 10 | int a = 0, b = 1; 11 | while (number > 1){ 12 | b = a + b; 13 | a = b - a; 14 | number--; 15 | } 16 | result = (number == 0) ? 0 : b; 17 | } 18 | public static void main(String[] args) throws IOException { 19 | FileReader file = new FileReader("input.txt"); 20 | Scanner sc = new Scanner(file); 21 | int number = sc.nextInt(); 22 | run(number); 23 | FileWriter fileOut = new FileWriter("output.txt"); 24 | fileOut.write(String.valueOf(result)); 25 | fileOut.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /fibonacci/README.md: -------------------------------------------------------------------------------- 1 |

Числа Фибоначчи (16%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 16%

3 |

Последовательностью Фибоначчи называется последовательность чисел a0, a1, ..., an, ..., где a0 = 0, a1 = 1, ak = ak-1 + ak-2 (k > 1).

4 |

Требуется найти N-е число Фибоначчи.

5 |

Формат ввода

6 |

Во входном файле input.txtзаписано целое число N (0 ≤ N ≤ 30).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите N-е число Фибоначчи.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
713
24 | 25 | -------------------------------------------------------------------------------- /fibonacci_again/FibonacciAgain.java: -------------------------------------------------------------------------------- 1 | package fibonacci_again; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class FibonacciAgain { 9 | public static void main(String[] args) throws IOException { 10 | Scanner scan = new Scanner(new FileReader("input.txt")); 11 | long number = (scan.nextLong()) % 60; 12 | 13 | long a = 0, b = 1; 14 | for (int i = 0; i < number; i++){ 15 | b = a + b; 16 | a = b - a; 17 | } 18 | long result = b%10; 19 | 20 | FileWriter out = new FileWriter("output.txt"); 21 | out.write(String.valueOf(result)); 22 | out.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /fibonacci_again/README.md: -------------------------------------------------------------------------------- 1 |

Снова Фибоначчи (23%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 23%

3 |

Вам наверняка знакомы числа Фибоначчи: 1, 1, 2, 3, 5, 8, 13, 21... Они определяются рекуррентным соотношением: Fn = Fn-1 + Fn-2, F0 = F1 = 1.

4 |

Требуется найти последнюю цифру n-го числа Фибоначчи.

5 |

Формат ввода

6 |

Во входном файле input.txt содержится одно целое число n (0 ≤ n ≤ 108).

7 |

Формат вывода

8 |

В выходной файл output.txt необходимо вывести одно число - последнюю цифру числа Fn.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
11
58
-------------------------------------------------------------------------------- /fibonacci_two/FibonacciTwo.java: -------------------------------------------------------------------------------- 1 | package fibonacci_two; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class FibonacciTwo { 7 | private static long number; 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | number = sc.nextInt(); 12 | } 13 | 14 | public static void main(String[] argv) throws IOException{ 15 | getData(); 16 | int a = 1, b = 1, k = 1; 17 | int isFibonacci = 0; 18 | while (number > a){ 19 | k++; 20 | b = a + b; 21 | a = b - a; 22 | if(a == number){ 23 | isFibonacci = 1; 24 | } 25 | } 26 | String result = (isFibonacci == 0) ? "0" : "1\n" + k; 27 | PrintWriter pw = new PrintWriter(new File("output.txt")); 28 | pw.print(result); 29 | pw.close(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /field/Field.java: -------------------------------------------------------------------------------- 1 | package field; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Field { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | data.add(Long.valueOf(st.nextToken())); 15 | } 16 | long areaRect = data.get(0) * data.get(1); // Площадь прямоугольника 17 | long sqrt = (long) Math.sqrt(areaRect); // Площадь стороны квадрата, если квадрат существует 18 | long result = (Math.pow(sqrt, 2) == areaRect) ? sqrt : 0; // Расчет результата 19 | System.out.println(result); 20 | FileWriter fileOut = new FileWriter("output.txt"); 21 | fileOut.write(String.valueOf(result)); 22 | fileOut.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /fishing_net/fishingNet.java: -------------------------------------------------------------------------------- 1 | package fishing_net; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class fishingNet { 7 | public static void main(String[] args) throws IOException { 8 | int node = 1; 9 | String str; 10 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 11 | Scanner sc = new Scanner(file); 12 | str = sc.nextLine(); 13 | StringTokenizer st = new StringTokenizer(str, " "); 14 | while(st.hasMoreTokens()){ 15 | node = node * (Integer.valueOf(st.nextToken()) - 1); 16 | } 17 | FileWriter fileOut = new FileWriter("output.txt"); 18 | fileOut.write(String.valueOf(node)); 19 | fileOut.close(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /floret/Floret.java: -------------------------------------------------------------------------------- 1 | package floret; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Floret { 7 | public static void main(String[] args) throws IOException { 8 | ArrayDeque queue = new ArrayDeque<>(Arrays.asList("G", "C", "V")); 9 | StringBuilder result = null; 10 | int str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = Integer.valueOf(sc.nextLine()); 14 | for(int i = 0; i < str; i++){ 15 | queue.addFirst(queue.getLast()); 16 | queue.removeLast(); 17 | } 18 | for(String flovers : queue){ 19 | if(result != null){ 20 | result.append(flovers); 21 | }else{ 22 | result = new StringBuilder(flovers); 23 | } 24 | } 25 | FileWriter fileOut = new FileWriter("output.txt"); 26 | assert result != null; 27 | fileOut.write(Objects.requireNonNull(result.toString())); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /football/Football.java: -------------------------------------------------------------------------------- 1 | package football; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class Football { 9 | public static void main(String[] args) throws IOException { 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | int ballCount = sc.nextInt(); 13 | 14 | int index = 0; 15 | while (ballCount > 0){ 16 | index++; 17 | ballCount -= index; 18 | } 19 | FileWriter out = new FileWriter("output.txt"); 20 | out.write(String.valueOf(index)); 21 | out.close(); 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /football/README.md: -------------------------------------------------------------------------------- 1 |

Футбол (22%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 22%

3 |

Вместо того чтобы делать уроки, Вася смотрел футбольный матч и записывал счет, который показывался на табло, после каждого забитого гола. Например, у него могла получиться такая запись: 1:0, 1:1, 1:2, 2:2, 2:3. После этого он сложил все записанные числа: 1+0+1+1+1+2+2+2+2+3=15.

4 |

По сумме, получившейся у Васи, определите, сколько всего мячей было забито в матче.

5 |

Формат ввода

6 |

В первой строке входного файла input.txt записано одно целое неотрицательное число, не превосходящее 1000 – сумма, полученная Васей.

7 |

Формат вывода

8 |

В выходной файл output.txt выведите одно число – общее количество забитых мячей.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
155
-------------------------------------------------------------------------------- /fun_game/FunGame.java: -------------------------------------------------------------------------------- 1 | package fun_game; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.ArrayList; 8 | import java.util.Collections; 9 | import java.util.Scanner; 10 | 11 | public class FunGame { 12 | public static void main(String[] args) throws IOException { 13 | Scanner sc = new Scanner(new FileReader("input.txt")); 14 | String number = sc.nextLine(); 15 | 16 | ArrayList numbers = new ArrayList<>(); 17 | String numberBinary = new BigInteger(number, 10).toString(2); 18 | 19 | while (!numbers.contains(numberBinary)) { 20 | numbers.add(numberBinary); 21 | numberBinary = numberBinary.substring(numberBinary.length()-1) + numberBinary.substring(0, numberBinary.length()-1); 22 | } 23 | 24 | String maxBinary = Collections.max(numbers); 25 | String max = new BigInteger(maxBinary, 2).toString(10); 26 | 27 | PrintWriter out = new PrintWriter(System.out); 28 | out.println(max); 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /funny_sequence/FunnySequence.java: -------------------------------------------------------------------------------- 1 | package funny_sequence; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.HashSet; 7 | import java.util.Scanner; 8 | import java.util.Set; 9 | 10 | public class FunnySequence { 11 | public static void main(String[] args)throws IOException { 12 | FileReader file = new FileReader("input.txt"); 13 | Scanner sc = new Scanner(file); 14 | int number = sc.nextInt(); 15 | Set list = new HashSet<>(1); 16 | 17 | int outNumber = 1; 18 | for (int i = 2; i <= number; i++){ 19 | if(list.contains(i)){ 20 | outNumber += 3; 21 | }else { 22 | outNumber += 2; 23 | } 24 | list.add(outNumber); 25 | } 26 | 27 | FileWriter out = new FileWriter("output.txt"); 28 | out.write(String.valueOf(outNumber)); 29 | out.close(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /funny_sequence/README.md: -------------------------------------------------------------------------------- 1 |

Забавная последовательность (26%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 26%

3 |

Определим последовательность ai следующим образом: a1 = 1, an = an-1+ 3, если число n уже встречалось в последовательности a, и an = an-1 + 2, иначе. Нетрудно видеть, что первые 8 членов этой последовательности таковы: 1, 3, 6, 8, 10, 13, 15, 18.

4 |

Ваша задача вычислить an.

5 |

Формат ввода

6 |

Входной файл input.txt содержит целое число n (1 ≤ n ≤ 105).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите an.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
11
818
-------------------------------------------------------------------------------- /game/Game.java: -------------------------------------------------------------------------------- 1 | package game; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Game { 7 | public static void main(String[] args) throws IOException { 8 | String number; // Число-разница 9 | int interimNumber; 10 | int differenceNumber; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); // 1 цифра 15 | interimNumber = Integer.valueOf(str); 16 | differenceNumber = 9 - interimNumber; // Получаем 3 цифру 17 | number = str + 9 + differenceNumber; 18 | FileWriter fileOut = new FileWriter("output.txt"); 19 | fileOut.write(number); 20 | fileOut.close(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gardener_artist/GardenerArtist.java: -------------------------------------------------------------------------------- 1 | package gardener_artist; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class GardenerArtist { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | int number = sc.nextInt(); 12 | int colorCount = 3; 13 | 14 | long count = (long) (colorCount * Math.pow(2, number-1)); 15 | 16 | FileWriter out = new FileWriter("output.txt"); 17 | out.write(String.valueOf(count)); 18 | out.close(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /gardener_artist/README.md: -------------------------------------------------------------------------------- 1 |

Садовник-художник (28%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

4 |

Садовник посадил N деревьев в один ряд. После посадки деревьев садовнику нужно их покрасить. В его распоряжении есть краска трех цветов: белая, синяя и оранжевая. Сколько способов покраски деревьев есть у него, если никакие два соседних дерева нельзя красить в одинаковый цвет?

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt записано одно натуральное число - количество деревьев N (1 ≤ N ≤ 50).

7 |

Формат вывода

8 |

В единственную строку выходного файла output.txt нужно вывести одно число - количество способов покраски.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
312
-------------------------------------------------------------------------------- /gifts/Gifts.java: -------------------------------------------------------------------------------- 1 | package gifts; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | import java.util.StringTokenizer; 8 | 9 | public class Gifts { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | StringTokenizer st = new StringTokenizer(sc.nextLine(), " "); 13 | int x = Integer.valueOf(st.nextToken()); 14 | int y = Integer.valueOf(st.nextToken()); 15 | int z = Integer.valueOf(st.nextToken()); 16 | int total = Integer.valueOf(st.nextToken()); 17 | 18 | int count = 0; 19 | 20 | for(int i = 0; i <= total; i += x){ 21 | for (int j = 0; j <= total-i; j += y){ 22 | for(int k = 0; k <= total - (i + j); k += z){ 23 | if(i + j + k == total){ 24 | count++; 25 | } 26 | } 27 | } 28 | } 29 | 30 | FileWriter out = new FileWriter("output.txt"); 31 | out.write(String.valueOf(count)); 32 | out.close(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /gifts/README.md: -------------------------------------------------------------------------------- 1 |

Подарки Деда Мороза (27%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

3 |

Ириска весит X грамм, мандарин – Y грамм, пряник – Z грамм.

4 |

Требуется написать программу, которая определит, сколько различных вариантов подарков весом ровно W грамм может сделать Дед Мороз.

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt содержится четыре целых числа X, Y, Z и W (1 ≤ X, Y, Z ≤ 100, 1 ≤ W ≤ 1000).

7 |

Формат вывода

8 |

Выходной файл output.txt должен содержать одно целое число – количество вариантов подарков.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
10 25 15 403
-------------------------------------------------------------------------------- /goldbach_conjecture_two/GoldbachConjectureTwo.java: -------------------------------------------------------------------------------- 1 | package goldbach_conjecture_two; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class GoldbachConjectureTwo { 9 | 10 | private static boolean isSimple(int number) { 11 | for (int index = 2; index < number; index++) { 12 | if (number % index == 0) { 13 | return false; 14 | } 15 | } 16 | 17 | return true; 18 | } 19 | 20 | 21 | public static void main(String[] args) throws IOException { 22 | int n = new Scanner(new FileReader("input.txt")).nextInt(); 23 | int result = 0; 24 | for (int i = 2; i <= n/2; i++) { 25 | int j = n - i; 26 | 27 | if (isSimple(i) && isSimple(j)) { 28 | result++; 29 | } 30 | } 31 | 32 | PrintWriter out = new PrintWriter(System.out); 33 | out.println(result); 34 | out.flush(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /gulliver/Gulliver.java: -------------------------------------------------------------------------------- 1 | package gulliver; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Gulliver { 7 | public static void main(String[] args) throws IOException { 8 | int count; 9 | ArrayList number = new ArrayList<>(); 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | number.add(Integer.valueOf(st.nextToken())); 17 | } 18 | count = number.get(0) * number.get(0) * number.get(1); 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(String.valueOf(count)); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /hockey/Hockey.java: -------------------------------------------------------------------------------- 1 | package hockey; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.FileWriter; 6 | import java.io.IOException; 7 | import java.util.Scanner; 8 | 9 | public class Hockey { 10 | public static void main(String[] args) throws IOException { 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | long teamCount = sc.nextLong(); 14 | 15 | long twoTeam = (teamCount -1 > 0) ? teamCount -1 : 1; 16 | long threeTeam = (twoTeam-1 > 0) ? twoTeam-1 : 1; 17 | 18 | long combinationCount = teamCount * twoTeam * threeTeam; 19 | 20 | FileWriter fileOut = new FileWriter("output.txt"); 21 | fileOut.write(String.valueOf(combinationCount)); 22 | fileOut.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /hockey/README.md: -------------------------------------------------------------------------------- 1 |

Хоккей (21%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 21%

3 |

В соревнованиях по хоккею участвует N команд. Сколько существует вариантов распределения комплектов золотых, серебряных и бронзовых медалей, если одно призовое место может занять только одна команда?

4 |

Формат ввода

5 |

Входной файл input.txt содержит целое число N (1 ≤ N ≤ 104) – количество команд.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите единственное число – искомое количество способов награждения участников.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
36
206840
-------------------------------------------------------------------------------- /home_school/HomeSchool.java: -------------------------------------------------------------------------------- 1 | package home_school; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class HomeSchool { 7 | private static ArrayList data = new ArrayList<>(); 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | while (sc.hasNextLine()){ 12 | data.add(sc.nextLine()); 13 | } 14 | } 15 | 16 | public static void main(String[] argv) throws IOException{ 17 | getData(); 18 | 19 | String stationStart = data.get(0); 20 | int travelCount = Integer.valueOf(data.get(1)); 21 | 22 | String result = (stationStart.equals("School") && travelCount % 2 == 0) ? "No" : "Yes"; 23 | 24 | PrintWriter pw = new PrintWriter(new File("output.txt")); 25 | pw.print(result); 26 | pw.close(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /in_bus/inBus.java: -------------------------------------------------------------------------------- 1 | package in_bus; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class inBus { 7 | private static ArrayList data = new ArrayList<>(); 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | data.add(Integer.valueOf(st.nextToken())); 15 | } 16 | } 17 | 18 | public static void main(String[] argv) throws IOException{ 19 | getData(); 20 | int min = (data.get(0) >= data.get(1)) ? data.get(0) : data.get(1); 21 | int max = (data.get(1) == 0) ? data.get(0) : data.get(0) + (data.get(1) - 1); 22 | String result = (data.get(0) == 0 && data.get(1) == 0) ? 0 + " " + 0 : 23 | (data.get(0) != 0) ? min + " " + max : "Impossible"; 24 | PrintWriter pw = new PrintWriter(new File("output.txt")); 25 | pw.print(result); 26 | pw.close(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /keyboard/README.md: -------------------------------------------------------------------------------- 1 |

Клавиатура (11%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 11%

3 |

Для данной буквы английского алфавита нужно вывести справа стоящую букву на стандартной клавиатуре. При этом клавиатура замкнута, т.е. справа от буквы «p» стоит буква «a», от буквы «l» стоит буква «z», а от буквы «m» — буква «q».

4 |

Формат ввода

5 |

Первая строка входного файла input.txt содержит один символ — маленькую букву английского алфавита.

6 |

Формат вывода

7 |

В выходной файл output.txt следует вывести букву стоящую справа от заданной буквы, с учетом замкнутости клавиатуры.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ВводВывод
qw
ty
mq
-------------------------------------------------------------------------------- /known_everybody/KnownEverybody.java: -------------------------------------------------------------------------------- 1 | package known_everybody; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class KnownEverybody { 7 | private static String result = "YES"; // Значение по умолчанию 8 | public static void main(String[] args) throws IOException { 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | char[] ch = str.toCharArray(); 13 | for (char aCh : ch) { 14 | int symbol = Character.getNumericValue(aCh); 15 | if (symbol == 0) { 16 | result = "NO"; // Если есть хотя бы 1 ноль 17 | break; 18 | } 19 | } 20 | FileWriter fileOut = new FileWriter("output.txt"); 21 | fileOut.write(result); 22 | fileOut.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /last_digit/LastDigit.java: -------------------------------------------------------------------------------- 1 | package last_digit; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class LastDigit{ 7 | public static void main(String[] args){ 8 | Scanner in = new Scanner(System.in); 9 | PrintWriter out = new PrintWriter(System.out); 10 | 11 | int base = in.nextInt() % 10; 12 | int exponent = in.nextInt() % 10; 13 | long result = (long) Math.pow(base, exponent); 14 | result = (base == 0) ? 0 : result % 10; 15 | 16 | out.println(result); 17 | out.flush(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /last_digit/README.md: -------------------------------------------------------------------------------- 1 |

Последняя цифра A^B (21%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 21%

3 |

Требуется написать программу, которая находит цифру, на которую оканчивается число AB.

4 |

Формат ввода

5 |

Входной файл input.txt состоит из единственной строки, содержащей два целых числа A и B, разделенных пробелом (1 ≤ A,B ≤ 10000).

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести цифру, на которую оканчивается AB.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ВводВывод
2 24
3 77
24 94
-------------------------------------------------------------------------------- /least_common_multiple/LeastCommonMultiple.java: -------------------------------------------------------------------------------- 1 | package least_common_multiple; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class LeastCommonMultiple { 7 | public static void main(String[] args){ 8 | Scanner i = new Scanner(System.in); 9 | int a = i.nextInt(), b = i.nextInt(); 10 | int c = a, d = b; 11 | while (a != b){ // Используется алгоритм Евклида 12 | if(a > b) a = a - b; 13 | else b = b - a; 14 | } 15 | int result = c / a * d; 16 | PrintWriter o = new PrintWriter(System.out); 17 | o.print(result); 18 | o.flush(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /least_common_multiple/README.md: -------------------------------------------------------------------------------- 1 |

НОК(19%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 19%

3 |

Требуется написать программу, определяющую наименьшее общее кратное (НОК) чисел a и b.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записаны два натуральных числа А и В через пробел, не превышающих 46340.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести одно целое число — НОК чисел А и В.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
36 27108
39 65195
27 | 28 | 29 | -------------------------------------------------------------------------------- /lexicographic_order_numbers/LexicographicOrderNumbers.java: -------------------------------------------------------------------------------- 1 | package lexicographic_order_numbers; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.ArrayList; 7 | import java.util.Collections; 8 | import java.util.Scanner; 9 | 10 | public class LexicographicOrderNumbers { 11 | public static void main(String[] args) throws IOException { 12 | String[] numbers = new Scanner(new FileReader("input.txt")).nextLine().split(" "); 13 | String n = numbers[0]; 14 | String k = numbers[1]; 15 | 16 | ArrayList numArray = new ArrayList<>(); 17 | for (int i = 1; i <= Integer.parseInt(n); i++) { 18 | numArray.add(String.valueOf(i)); 19 | } 20 | Collections.sort(numArray); 21 | 22 | PrintWriter out = new PrintWriter(System.out); 23 | for (int i = 0; i < numArray.size(); i++) { 24 | if (numArray.get(i).equals(k)) { 25 | out.println(i+1); 26 | break; 27 | } 28 | } 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /lexicographic_order_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Лексикографический порядок чисел (31%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 31%

4 |

Натуральные числа от 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.

5 |

Требуется написать программу, которая определит, на каком месте оказалось число K.

6 |

Формат ввода

7 |

Входной файл input.txt содержит два натуральных числа N и K, записанных через пробел (1 ≤ K ≤ N ≤ 104).

8 |

Формат вывода

9 |

Выходной файл output.txt должен содержать одно натуральное число – номер места, на котором оказалось число K.

10 |

Примеры

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
ВводВывод
25 179
-------------------------------------------------------------------------------- /list_of_items/ListOfItems.java: -------------------------------------------------------------------------------- 1 | package list_of_items; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.*; 7 | 8 | public class ListOfItems { 9 | public static void main(String[] args) throws IOException { 10 | ArrayList items = new ArrayList<>(); 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | sc.nextLine(); 14 | 15 | while (sc.hasNextLine()) { 16 | items.add(sc.nextLine()); 17 | } 18 | 19 | Collections.sort(items); 20 | 21 | int count = 0; 22 | for (int i = 0; i < items.size(); i++) { 23 | if (!(i + 1 < items.size() && items.get(i+1).indexOf(items.get(i)) == 0)) { 24 | count++; 25 | } 26 | } 27 | 28 | PrintWriter out = new PrintWriter(System.out); 29 | out.println(count); 30 | out.flush(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lucky_ticket/LuckyTicket.java: -------------------------------------------------------------------------------- 1 | package lucky_ticket; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class LuckyTicket { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | String result; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | char[] symbols = str.toCharArray(); 15 | for (char symbol : symbols) { 16 | data.add(Character.getNumericValue(symbol)); 17 | } 18 | result = (data.get(0) + data.get(1) + data.get(2) == data.get(3) + data.get(4) + data.get(5)) ? "YES" : "NO"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(result); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lucky_ticket/README.md: -------------------------------------------------------------------------------- 1 |

Счастливый билет (12%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 12%

3 |

Вы пользуетесь общественным транспортом? Вероятно, вы расплачивались за проезд и получали билет с номером. Счастливым билетом называют такой билет с шестизначным номером, где сумма первых трех цифр равна сумме последних трех. Т.е. билет с номером 385916 – счастливый, т.к. 3+8+5=9+1+6. Вам требуется написать программу, которая проверяет счастливость билета.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записано одно целое число N (0 ≤ N < 106).

6 |

Формат вывода

7 |

В выходной файл output.txt нужно вывести «YES», если билет с номером N счастливый и «NO» в противном случае.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
385916YES
123456NO
-------------------------------------------------------------------------------- /module_amount/README.md: -------------------------------------------------------------------------------- 1 |

Модуль суммы (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Дана последовательность целых чисел. Требуется найти подпоследовательность заданной последовательности с максимальным модулем суммы входящих в нее чисел. Напомним, что модуль целого числа x равняется x, если x ≥ 0 и -x, если x < 0.

4 |

Формат ввода

5 |

Первая строка входного файла input.txt содержит натуральное число n (1 ≤ n ≤ 10000) - длину последовательности. Во второй строке записаны n целых чисел, по модулю не превосходящих 10000.

6 |

Формат вывода

7 |

В первой строке выходного файла output.txt выведите длину k выбранной вами подпоследовательности. Во второй строке должны быть записаны k различных чисел, разделенных пробелами - номера выбранных членов последовательности.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 23 | 24 |
ВводВывод
5
19 | -1 4 -1 6 -7
2
21 | 2 4
-------------------------------------------------------------------------------- /money_money_money/MoneyMoneyMoney.java: -------------------------------------------------------------------------------- 1 | package money_money_money; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class MoneyMoneyMoney { 9 | public static void main(String[] args) throws IOException { 10 | PrintWriter out = new PrintWriter(System.out); 11 | 12 | long x = new Scanner(new FileReader("input.txt")).nextLong(); 13 | 14 | if (x % 2 == 0) { 15 | out.println("0 0"); 16 | } else { 17 | 18 | long a = 2; 19 | long b = x + a; 20 | 21 | out.println(a + " " + b); 22 | } 23 | 24 | out.flush(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /more_less/MoreLess.java: -------------------------------------------------------------------------------- 1 | package more_less; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class MoreLess { 7 | public static void main(String[] args) throws IOException { 8 | String symbol; 9 | ArrayList number = new ArrayList<>(); 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | while (sc.hasNextLine()){ 14 | str = sc.nextLine(); 15 | number.add(Integer.valueOf(str)); 16 | } 17 | symbol = (number.get(0) > number.get(1)) ? ">" : // Проверка условия задачи 18 | (number.get(0) < number.get(1)) ? "<" : "="; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(symbol); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /mouse/Mouse.java: -------------------------------------------------------------------------------- 1 | package mouse; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Mouse { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList size = new ArrayList<>(); 9 | String out; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | size.add(Long.valueOf(st.nextToken())); 17 | } 18 | out = (size.get(2)*2 <= size.get(0) && size.get(2)*2 <= size.get(1)) ? "YES" : "NO"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(out); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /multi_digits/README.md: -------------------------------------------------------------------------------- 1 |

Произведение цифр - 2 (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Найдите количество чисел из отрезка [L, R], которые делятся на произведение своих цифр.

4 |

Формат ввода

5 |

Входной файл input.txt содержит два целых числа L и R. (1 ≤ L ≤ R ≤ 109, |R-L| ≤ 105)

6 |

Формат вывода

7 |

В выходной файл output.txt выведите ответ на задачу.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
1 1211
-------------------------------------------------------------------------------- /n_digit_numbers/README.md: -------------------------------------------------------------------------------- 1 |

N-значные числа (32%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 32%

4 |

Найти количество N-значных чисел, у которых сумма цифр равна их произведению. Вывести наименьшее среди таких чисел для заданного N.

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt записано одно натуральное число N, которое не превышает 10.

7 |

Формат вывода

8 |

В единственную строку выходного файла output.txt нужно вывести через пробел 2 числа: количество искомых чисел и наименьшее среди них.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
110 0
21 22
-------------------------------------------------------------------------------- /natural_number_series/NaturalNumberSeries.java: -------------------------------------------------------------------------------- 1 | package natural_number_series; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class NaturalNumberSeries { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | String str = sc.nextLine(); 12 | 13 | int len = str.length(); 14 | StringBuilder series = new StringBuilder(); 15 | int index = 1; 16 | int start = 0; 17 | 18 | 19 | 20 | while (true){ 21 | if(series.length() >= len){ 22 | String substr = series.substring(start, start+len); 23 | if(substr.equals(str)){ 24 | break; 25 | } 26 | start++; 27 | } 28 | series.append(index); 29 | index++; 30 | } 31 | 32 | start++; 33 | 34 | FileWriter out = new FileWriter("output.txt"); 35 | out.write(String.valueOf(start)); 36 | out.close(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /natural_number_series/README.md: -------------------------------------------------------------------------------- 1 |

Натуральный ряд чисел (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Натуральные числа записаны в строку без каких-либо разделителей. Начало этой строки имеет вид 123456789101112131415161718192021… .

4 |

Требуется написать программу, которая определит первое вхождение десятичной записи заданного числа N в этой строке.

5 |

Формат ввода

6 |

Входной файл input.txt содержит заданное число N (1 ≤ N ≤ 104).

7 |

Формат вывода

8 |

Выходной файл output.txt должен содержать одно число – позицию, начиная с которой в строке записано первое вхождение заданного числа. Нумерация позиций начинается с единицы.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
ВводВывод
454
10110
14273
-------------------------------------------------------------------------------- /number_e/NumberE.java: -------------------------------------------------------------------------------- 1 | package number_e; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.*; 5 | import java.io.*; 6 | 7 | public class NumberE { 8 | private static int symbolCount; 9 | private static void getData() throws IOException{ // Получение данных 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | symbolCount = sc.nextInt(); 13 | } 14 | 15 | public static void main(String[] argv) throws IOException{ 16 | getData(); 17 | BigDecimal e = new BigDecimal("2.7182818284590452353602875"); // Число е 18 | String result = String.format("%(."+symbolCount+"f", e).replaceAll(",", "."); // Округление с заданной точностью 19 | PrintWriter pw = new PrintWriter(new File("output.txt")); 20 | pw.print(result); 21 | pw.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /number_e/README.md: -------------------------------------------------------------------------------- 1 |

Число E (20%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 20%

3 |

Выведите в выходной файл округленное до n знаков после десятичной точки число E. В данной задаче будем считать, что число Е в точности равно 2.7182818284590452353602875.

4 |

Формат ввода

5 |

Входной файл input.txt содержит целое число n (0 ≤ n ≤ 25).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите ответ на задачу.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ВводВывод
03
252.7182818284590452353602875
132.7182818284590
31 | 32 | -------------------------------------------------------------------------------- /number_of_smith/README.md: -------------------------------------------------------------------------------- 1 |

Числа Смита (30%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 30%

4 |

Число Смита — такое составное число, сумма цифр которого равняется сумме цифр всех его простых сомножителей. Так, примером числа Смита может служить 202, поскольку 2 + 0 + 2 = 4 и 2 + 1 + 0 + 1 = 4 (202 = 2 * 101). Напишите программу, которая для заданной последовательности чисел определяет, какие из них являются числами Смита.

5 |

Формат ввода

6 |

Входной файл input.txt содержит не более 20 натуральных чисел в пределах от 4 до 106.

7 |

Формат вывода

8 |

В выходной файл output.txt выведите строку из 0 и 1 (1, если соответствующее число является числом Смита и 0 иначе).

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
4 20 17 2021001
-------------------------------------------------------------------------------- /number_participants_olympiad/NumberParticipantsOlympiad.java: -------------------------------------------------------------------------------- 1 | package number_participants_olympiad; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class NumberParticipantsOlympiad { 9 | public static void main (String[] args) throws IOException { 10 | Scanner scan = new Scanner(new FileReader("input.txt")); 11 | String[] items = scan.nextLine().split(" "); 12 | int k = Integer.parseInt(items[0]); 13 | int n = Integer.parseInt(items[1]); 14 | int m = Integer.parseInt(items[2]); 15 | int d = Integer.parseInt(items[3]); 16 | 17 | int itemCount = 0; 18 | for (int item = 1; item <= (k*m*n*d); item++) { 19 | if ((item % k == 0 && item % n == 0 && item % m == 0) && (item /k + item /n + item /m == item - d)) { 20 | itemCount = item; 21 | break; 22 | } 23 | } 24 | 25 | itemCount = itemCount > 0 ? itemCount : -1; 26 | 27 | PrintWriter out = new PrintWriter(System.out); 28 | out.println(itemCount); 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /numbers/README.md: -------------------------------------------------------------------------------- 1 |

Наименьшее и наибольшее числа из тех же цифр (23%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 23%

3 |

Требуется написать программу, которая найдет наименьшее и наибольшее числа, состоящие из тех же цифр, что и заданное натуральное число N.

4 |

Формат ввода

5 |

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 2×109).

6 |

Формат вывода

7 |

Выходной файл OUTPUT.TXT должен содержать в одной строке наименьшее, а через пробел – наибольшее числа.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
70511057 7510
851158 851
-------------------------------------------------------------------------------- /numbers_without_same_digit/README.md: -------------------------------------------------------------------------------- 1 |

Числа без одинаковых цифр (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Антон записал ряд натуральных чисел в порядке возрастания: 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 и т.д.

4 |

Вам необходимо по заданному N найти N-ое по счету число в получившейся последовательности.

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt записано натуральное число N (1 ≤ N ≤ 10000).

7 |

Формат вывода

8 |

В единственную строку выходного файла output.txt нужно вывести N-ое по счету число без одинаковых цифр.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
ВводВывод
100123
-------------------------------------------------------------------------------- /numerologist/Numerologist.java: -------------------------------------------------------------------------------- 1 | package numerologist; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class Numerologist { 9 | public static void main(String[] args)throws IOException { 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | 13 | String time = sc.nextLine(); 14 | int index = 0; 15 | 16 | while (time.length() > 1){ 17 | long timeLong = 0; 18 | char[] chArr = time.toCharArray(); 19 | for (char aChArr : chArr) { 20 | timeLong += Character.getNumericValue(aChArr); 21 | } 22 | index++; 23 | time = String.valueOf(timeLong); 24 | } 25 | 26 | String result = time + " " + index; 27 | 28 | FileWriter out = new FileWriter("output.txt"); 29 | out.write(result); 30 | out.close(); 31 | } 32 | } -------------------------------------------------------------------------------- /nutlets/Nutlets.java: -------------------------------------------------------------------------------- 1 | package nutlets; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Nutlets { 7 | public static void main(String[] args) throws IOException { 8 | String symbol; 9 | ArrayList number = new ArrayList<>(); 10 | String str; 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | number.add(Integer.valueOf(st.nextToken())); 17 | } 18 | symbol = (number.get(0) * number.get(1) >= number.get(2)) ? "YES" : "NO"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(symbol); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /office/Office.java: -------------------------------------------------------------------------------- 1 | package office; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Office { 7 | private static ArrayList data = new ArrayList<>(); 8 | private static void getData() throws IOException{ 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | while (sc.hasNextLine()){ 12 | String str = sc.nextLine(); 13 | StringTokenizer st = new StringTokenizer(str, " "); 14 | while (st.hasMoreTokens()){ 15 | data.add(Integer.valueOf(st.nextToken())); 16 | } 17 | } 18 | } 19 | public static void main(String[] argv) throws IOException{ 20 | getData(); 21 | int peopleAllDay = 0; 22 | for (Integer aData : data) { 23 | peopleAllDay += aData; 24 | } 25 | int result = peopleAllDay / 27; 26 | PrintWriter pw = new PrintWriter(new File("output.txt")); 27 | pw.print(String.valueOf(result)); 28 | pw.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /only_right_down/image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allicen/Java-1000/614c2af783aa651aed2d996bdb3cfd18c1c6fc03/only_right_down/image.gif -------------------------------------------------------------------------------- /oversteping/Oversteping.java: -------------------------------------------------------------------------------- 1 | package oversteping; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class Oversteping { 10 | public static void main(String[] agrs) throws IOException { 11 | String[] data = new Scanner(new FileReader("input.txt")).nextLine().split(" "); 12 | int n = Integer.parseInt(data[0]); 13 | BigInteger m = new BigInteger(data[1]); 14 | 15 | BigInteger pow = BigInteger.TWO.pow(n); 16 | 17 | BigInteger answer = BigInteger.TWO.modPow(pow, m); 18 | 19 | PrintWriter out = new PrintWriter(System.out); 20 | out.println(answer); 21 | out.flush(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /oversteping/README.md: -------------------------------------------------------------------------------- 1 |

Сверхстепень (30%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 30%

4 |

5 | Назовем значение выражения 22n n-ой сверхстепенью числа 2. Таким образом, например, третья сверхстепень числа 2 равна 223 = 28 = 256. 6 |

7 |

Ваша задача – вычислить n-ую сверхстепень двойки по модулю m.

8 |

Формат ввода

9 |

10 | Входной файл INPUT.TXT содержит два целых числа: n (0 ≤ n ≤ 105) и m (2 ≤ m ≤ 104). 11 |

12 |

Формат вывода

13 |

В выходной файл OUTPUT.TXT выведите ответ на задачу.

14 |

Примеры

15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
ВводВывод
3 1000256
10 106
-------------------------------------------------------------------------------- /palindrome/Palindrome.java: -------------------------------------------------------------------------------- 1 | package palindrome; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Palindrome { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList number = new ArrayList<>(); // Прямой порядок символов 9 | ArrayList numberReverse = new ArrayList<>(); // Обратный порядок символов 10 | String result; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | char[] ch = str.toCharArray(); 16 | for (char aCh : ch) { 17 | number.add(String.valueOf(aCh)); 18 | } 19 | for(int j = ch.length; j >0; j--){ // Записать в коллекцию в обратном порядке 20 | numberReverse.add(String.valueOf(ch[j-1])); 21 | } 22 | result = (number.equals(numberReverse)) ? "YES" : "NO"; 23 | FileWriter fileOut = new FileWriter("output.txt"); 24 | fileOut.write(result); 25 | fileOut.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /palindrome/README.md: -------------------------------------------------------------------------------- 1 |

Четырехзначный палиндром (10%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 10%

3 |

Требуется написать программу, определяющую, является ли четырехзначное натуральное число N палиндромом, т.е. числом, которое одинаково читается слева направо и справа налево.

4 |

Формат ввода

5 |

Входной файл input.txt содержит натуральное число N (1000 ≤ N ≤ 9999).

6 |

Формат вывода

7 |

В выходной файл output.txt следует вывести слово «YES», если число N является палиндромом, или «NO» – если нет.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
6116YES
1231NO
-------------------------------------------------------------------------------- /parallelepiped/Parallelepiped.java: -------------------------------------------------------------------------------- 1 | package parallelepiped; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Parallelepiped { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList side = new ArrayList<>(); 9 | String squareSide; 10 | long square; 11 | long volume; 12 | String str; 13 | FileReader file = new FileReader("input.txt"); 14 | Scanner sc = new Scanner(file); 15 | str = sc.nextLine(); 16 | StringTokenizer st = new StringTokenizer(str, " "); 17 | while (st.hasMoreTokens()){ 18 | side.add(Long.valueOf(st.nextToken())); 19 | } 20 | volume = side.get(0) * side.get(1) * side.get(2); // Расчет объема 21 | square = (side.get(0) * side.get(1) + side.get(0) * side.get(2) + side.get(1) * side.get(2)) * 2; // Расчет площади поверхности фигуры 22 | squareSide = square + " " + volume; 23 | FileWriter fileOut = new FileWriter("output.txt"); 24 | fileOut.write(squareSide); 25 | fileOut.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /permutation/Permutation.java: -------------------------------------------------------------------------------- 1 | package permutation; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Permutation { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList numbers = new ArrayList<>(); 9 | String out; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while(st.hasMoreTokens()){ 16 | numbers.add(Integer.valueOf(st.nextToken())); 17 | } 18 | out = (numbers.get(0) + numbers.get(1) == numbers.get(2)) ? "YES" : 19 | (numbers.get(0) + numbers.get(2) == numbers.get(1)) ? "YES" : 20 | (numbers.get(1) + numbers.get(2) == numbers.get(0)) ? "YES" : "NO"; 21 | FileWriter fileOut = new FileWriter("output.txt"); 22 | fileOut.write(out); 23 | fileOut.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /phone/README.md: -------------------------------------------------------------------------------- 1 |

Телефон (12%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 12%

3 |

Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц – В рублей за минуту, а разговоры сверх установленной нормы оплачиваются из расчета С рублей за минуту. Требуется написать программу, вычисляющую плату за пользование телефоном для разговоров продолжительностью Т минут в месяц.

4 |

Формат ввода

5 |

Входной файл input.txt содержит натуральные числа A, B, C и T, не превышающие 1000. Числа располагаются в одной строке и разделены пробелами.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите единственное целое число – месячную плату за пользование телефоном.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
30 2 3 3060
20 1 3 3050
-------------------------------------------------------------------------------- /pizza/Pizza.java: -------------------------------------------------------------------------------- 1 | package pizza; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Pizza { 7 | private static int cutCount; 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | cutCount = sc.nextInt(); 12 | } 13 | 14 | public static void main(String[] argv) throws IOException{ 15 | getData(); 16 | int d = 1; // Насколько увеличивается количество кусков при следующем разрезе 17 | for(int i = 1; i < cutCount; i++){ 18 | d = d + i; 19 | } 20 | int pieceCount = cutCount + d; // Всего количество кусков 21 | PrintWriter pw = new PrintWriter(new File("output.txt")); 22 | pw.print(String.valueOf(pieceCount)); 23 | pw.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /playing_with_matches/PlayingWithMatches.java: -------------------------------------------------------------------------------- 1 | package playing_with_matches; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class PlayingWithMatches { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | int countMatches = sc.nextInt(); 12 | String result = countMatches % 3 == 0 ? "2" : "1"; 13 | 14 | FileWriter out = new FileWriter("output.txt"); 15 | out.write(result); 16 | out.close(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /playing_with_matches/README.md: -------------------------------------------------------------------------------- 1 |

Игра со спичками (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Двое играют в следующую игру. Из кучки спичек за один ход игрок вытягивает либо 1, либо 2, либо 1000 спичек. Выигрывает тот, кто забирает последнюю спичку. Кто выигрывает при правильной игре?

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записано одно натуральное число — N (1 ≤ N ≤ 10000) начальное количество спичек в кучке.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести 1, если выигрывает первый игрок (тот, кто ходит первым), или 2, если выигрывает второй игрок.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
21
32
-------------------------------------------------------------------------------- /playing_with_pebbles/PlayingWithPebbles.java: -------------------------------------------------------------------------------- 1 | package playing_with_pebbles; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Arrays; 7 | import java.util.Scanner; 8 | 9 | public class PlayingWithPebbles { 10 | public static void main(String[] args) throws IOException { 11 | int n = new Scanner(new FileReader("input.txt")).nextInt(); 12 | int[] results = new int[n+1]; 13 | 14 | for (int i = 3; i <= n; i++) { 15 | for (int j = 1; j <= (i-1)/2; j++) { 16 | if (results[i - j] == 0) { 17 | results[i] = 1; 18 | break; 19 | } 20 | } 21 | } 22 | 23 | PrintWriter out = new PrintWriter(System.out); 24 | if (results[n] == 0) { 25 | out.println(0); 26 | } else { 27 | for (int i = 1; i <= n; i++) { 28 | if (results[n-i] == 0) { 29 | out.println(i); 30 | break; 31 | } 32 | } 33 | } 34 | 35 | out.flush(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /playing_with_pebbles/README.md: -------------------------------------------------------------------------------- 1 |

Игра с камешками (32%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 32%

4 |

В начале игры имеем N камешков. Играют двое. За один ход нужно разделить кучку на две неравные и забрать себе меньшую. Проиграл тот, кто не смог этого сделать.

5 |

Сколько камешков взяли бы Вы первым ходом, если рассчитываете на победу и ходите первым?

6 |

Формат ввода

7 |

8 | В единственной строке входного файла INPUT.TXT записано одно число - число камушков в кучке N (1 ≤ N ≤ 106). 9 |

10 |

Формат вывода

11 |

12 | В выходной файл OUTPUT.TXT выведите одно число - количество взятых Вами первым ходом камушков, либо 0, если выигрышного хода нет. 13 |

14 |

Примеры

15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
ВводВывод
73
-------------------------------------------------------------------------------- /premium/Premium.java: -------------------------------------------------------------------------------- 1 | package premium; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | import java.util.StringTokenizer; 9 | 10 | public class Premium { 11 | public static void main(String[] args) throws IOException { 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | int index = 0, n = 0; 14 | String k = ""; 15 | StringTokenizer st = new StringTokenizer(sc.nextLine(), " "); 16 | while (st.hasMoreTokens()){ 17 | if(index == 0){ 18 | n = Integer.valueOf(st.nextToken()); 19 | }else { 20 | k = st.nextToken(); 21 | } 22 | index++; 23 | } 24 | 25 | int numberSystem = n % 10 + 2; 26 | BigInteger result = new BigInteger(k, numberSystem); 27 | 28 | FileWriter out = new FileWriter("output.txt"); 29 | out.write(String.valueOf(result)); 30 | out.close(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /prime_factorization/PrimeFactorization.java: -------------------------------------------------------------------------------- 1 | package prime_factorization; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class PrimeFactorization { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | long number = sc.nextLong(); 12 | 13 | StringBuilder result = new StringBuilder(); 14 | 15 | int n = 2; 16 | while (n <= Math.sqrt(number)){ 17 | if(number % n == 0){ 18 | result.append(n); 19 | number /= n; 20 | if (number > 1) result.append("*"); 21 | }else n++; 22 | } 23 | if(number > 1)result.append(number); 24 | System.out.println(result); 25 | 26 | FileWriter out = new FileWriter("output.txt"); 27 | out.write(String.valueOf(result)); 28 | out.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /prime_factorization/README.md: -------------------------------------------------------------------------------- 1 |

Разложение на простые множители (27%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

3 |

Требуется вывести представление целого числа N в виде произведения простых чисел.

4 |

Формат ввода

5 |

Входной файл input.txt содержит натуральное число N (2 ≤ N ≤ 231-1).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите список простых множителей числа N в порядке неубывания, разделенных знаком «*».

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
55
302*3*5
-------------------------------------------------------------------------------- /puzzle_queens/PuzzleQueens.java: -------------------------------------------------------------------------------- 1 | package puzzle_queens; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class PuzzleQueens { 7 | public static void main(String[] args) throws IOException { 8 | FileReader file = new FileReader("input.txt"); 9 | Scanner sc = new Scanner(file); 10 | int countQueen = Integer.valueOf(sc.nextLine()); 11 | int result = 0; 12 | for(int i = countQueen - 2; i > 0 ; i--){ // Перебираем варианты для одной стороны поля 13 | result += i; 14 | } 15 | result = result * 2; // Добавляем вторую сторону 16 | FileWriter fileOut = new FileWriter("output.txt"); 17 | fileOut.write(String.valueOf(result)); 18 | fileOut.close(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /rect/Rect.java: -------------------------------------------------------------------------------- 1 | package rect; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class Rect { 9 | public static void main(String[] args) throws IOException { 10 | String[] sides = new Scanner(new FileReader("input.txt")).nextLine().split(" "); 11 | int w = Integer.parseInt(sides[0]); 12 | int h = Integer.parseInt(sides[1]); 13 | long res = 0; 14 | 15 | for (int i = 1; i <= w; i++) { 16 | for (int j = 1; j <= h; j++) { 17 | res += i*j; 18 | } 19 | } 20 | 21 | PrintWriter out = new PrintWriter(System.out); 22 | out.print(res); 23 | out.flush(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /rectangle_two/README.md: -------------------------------------------------------------------------------- 1 |

Прямоугольник - 2 (27%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

4 |

Заданы координаты трех вершин прямоугольника. Необходимо определить координаты четвертой вершины.

5 |

Формат ввода

6 |

Во входном файле input.txt записаны через пробел координаты трех вершин прямоугольника в произвольном порядке в формате x1 y1 x2 y2 x3 y3. Все числа целые, не превосходящие 1000 по абсолютной величине.

7 |

Формат вывода

8 |

В выходной файл output.txt нужно вывести через пробел координаты четвертой вершины прямоугольника.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
0 3 0 0 5 05 3
1 4 8 3 7 62 1
-------------------------------------------------------------------------------- /repair/Repair.java: -------------------------------------------------------------------------------- 1 | package repair; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Repair { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList length = new ArrayList<>(); 9 | int result; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | StringTokenizer st = new StringTokenizer(str, " "); 15 | while (st.hasMoreTokens()){ 16 | length.add(Integer.valueOf(st.nextToken())); // Записать все элементы в коллекцию 17 | } 18 | result = (2 * (length.get(0) * length.get(2) + length.get(1) * length.get(2))) / 16; 19 | if((2 * (length.get(0) * length.get(2) + length.get(1) * length.get(2))) % 16 != 0){ 20 | result = result + 1; 21 | } 22 | FileWriter fileOut = new FileWriter("output.txt"); 23 | fileOut.write(String.valueOf(result)); 24 | fileOut.close(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /riddle/README.md: -------------------------------------------------------------------------------- 1 |

Загадка (18%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 18%

3 |

Петя и Катя – брат и сестра. Петя – студент, а Катя – школьница. Петя помогает Кате по математике. Он задумывает два натуральных числа X и Y (X,Y≤1000), а Катя должна их отгадать. Для этого Петя делает две подсказки. Он называет сумму этих чисел S и их произведение P. Помогите Кате отгадать задуманные Петей числа.

4 |

Формат ввода

5 |

Входной файл input.txt содержит два натуральных числа S и P, разделенных пробелом.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите два числа Х и Y, загаданные Петей. Числа следует вывести в порядке неубывания своих значений, разделенные пробелом.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
4 42 2
5 62 3
27 | 28 | -------------------------------------------------------------------------------- /riddle/Riddle.java: -------------------------------------------------------------------------------- 1 | package riddle; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Riddle { 7 | private static ArrayList number = new ArrayList<>(); 8 | private static void getData() throws IOException{ 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | number.add(Integer.valueOf(st.nextToken())); 15 | } 16 | } 17 | public static void main(String[] argv) throws IOException{ 18 | getData(); 19 | int x, y; 20 | x = (int) ((number.get(0) - (Math.sqrt(Math.pow(number.get(0), 2) - 4 * number.get(1)))) / 2); // 1 число через систему уравнений 21 | y = (int) ((number.get(0) + (Math.sqrt(Math.pow(number.get(0), 2) - 4 * number.get(1)))) / 2); //2 число через систему уравнений 22 | String result = x + " " + y; 23 | PrintWriter pw = new PrintWriter(new File("output.txt")); 24 | pw.print(result); 25 | pw.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ring/README.md: -------------------------------------------------------------------------------- 1 |

Кольцо (16%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 16%

3 |

Заданы площадь кольца и радиус внешней окружности. Требуется определить радиус внутренней окружности.

4 |

Формат ввода

5 |

Входной файл input.txt содержит два положительных вещественных числа: S и R1 – площадь кольца и радиус внешней окружности соответственно. Радиус внешней окружности не превышает 100.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите радиус внутренней окружности R2 с точностью не худшей, чем 10-3.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
50.265482 5.03.000
23 | 24 | -------------------------------------------------------------------------------- /ring/Ring.java: -------------------------------------------------------------------------------- 1 | package ring; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Ring { 7 | private static ArrayList data = new ArrayList<>(); 8 | private static void getData() throws IOException{ // Получение данных 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | data.add(Double.valueOf(st.nextToken())); 15 | } 16 | } 17 | 18 | public static void main(String[] argv) throws IOException{ 19 | getData(); 20 | double r = Math.sqrt((Math.PI * Math.pow(data.get(1), 2) - data.get(0)) / Math.PI); // Используем формулу нахождения площади кольца 21 | String rformat = String.format("%.3f", r).replaceAll(",", "."); // Приводим число к нужному формату 22 | PrintWriter pw = new PrintWriter(new File("output.txt")); 23 | pw.print(String.valueOf(rformat)); 24 | pw.close(); 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /rook/Rook.java: -------------------------------------------------------------------------------- 1 | package rook; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Rook { 7 | private static ArrayList data = new ArrayList<>(); 8 | 9 | private static void getData() throws IOException{ 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | String str = sc.nextLine(); 13 | StringTokenizer st = new StringTokenizer(str, " "); 14 | while (st.hasMoreTokens()){ 15 | data.add(Long.valueOf(st.nextToken())); 16 | } 17 | } 18 | 19 | public static void main(String[] argv) throws IOException{ 20 | getData(); 21 | long x = data.get(0); 22 | long y = data.get(1); 23 | 24 | String result = (x == 1 && y == 1) ? "0" : 25 | (x == y) ? "2" : "1"; 26 | 27 | PrintWriter pw = new PrintWriter(new File("output.txt")); 28 | pw.print(result); 29 | pw.close(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /salary/README.md: -------------------------------------------------------------------------------- 1 |

Зарплата (4%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 4%

3 |

В отделе работают 3 сотрудника, которые получают заработную плату в рублях. Требуется определить: на сколько зарплата самого высокооплачиваемого из них отличается от самого низкооплачиваемого.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записаны размеры зарплат всех сотрудников через пробел. Каждая заработная плата – это натуральное число, не превышающее 105.

6 |

Формат вывода

7 |

В выходной файл output.txt необходимо вывести одно целое число — разницу между максимальной и минимальной зарплатой.

8 |

Пример 1

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
100 500 1000900
36 11 2025
-------------------------------------------------------------------------------- /salary/Salary.java: -------------------------------------------------------------------------------- 1 | package salary; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Salary { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList list = new ArrayList<>(); // Записываем все зп в коллекцию 9 | int difference; // Максимальная разница в зп 10 | int count; // Количество зарплат 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while (st.hasMoreTokens()){ 17 | list.add(Integer.valueOf(st.nextToken())); 18 | } 19 | Collections.sort(list); // Сортируем коллекцию 20 | count = list.size(); // Получаем размер коллекции 21 | difference = list.get(count-1) - list.get(0); // Из максимальной зп вычитаем минимальную 22 | 23 | FileWriter fileOut = new FileWriter("output.txt"); 24 | fileOut.write(String.valueOf(difference)); 25 | fileOut.close(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /same_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Общие цифры (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Заданы натуральные числа A, B, C. Требуется написать программу, которая найдет общие цифры в этих числах.

4 |

Формат ввода

5 |

Входной файл input.txt содержит три натуральных числа A, B, C (1 ≤ A, B, C ≤ 1080). Числа разделены одним пробелом.

6 |

Формат вывода

7 |

Выходной файл output.txt должен содержать в первой строке количество общих цифр, а во второй строке в порядке возрастания через один пробел общие цифры.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 30 | 31 | 32 |
ВводВывод
1 2 30
12 13 141
24 | 1
1234 2345 34562
29 | 3 4
-------------------------------------------------------------------------------- /season/README.md: -------------------------------------------------------------------------------- 1 |

Время года (10%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 10%

3 |

По заданному номеру месяца в году требуется определить время года.

4 |

Формат ввода

5 |

Входной файл input.txt содержит натуральное число N (N≤100) – номер месяца.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите для летних месяцев значение «Summer», для зимних – «Winter», для весенних – «Spring», для осенних – «Autumn». Если число не соответствует возможному значению месяца, то в этом случае следует вывести «Error».

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
3Spring
15Error
-------------------------------------------------------------------------------- /season/Season.java: -------------------------------------------------------------------------------- 1 | package season; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Season { 7 | public static void main(String[] args) throws IOException { 8 | String season; 9 | String str; 10 | int month; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | month = Integer.valueOf(str); 15 | season = (month == 1 || month == 2 || month == 12) ? "Winter" : 16 | (month == 3 || month == 4 || month == 5) ? "Spring" : 17 | (month == 6 || month == 7 || month == 8) ? "Summer" : 18 | (month == 9 || month == 10 || month == 11) ? "Autumn" : "Error"; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(season); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /shift_text/ShiftText.java: -------------------------------------------------------------------------------- 1 | package shift_text; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class ShiftText { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | String firstLine = sc.nextLine(); 12 | String secondLine = sc.nextLine(); 13 | 14 | int result = -1; 15 | int index = 0; 16 | 17 | for (char symbol: secondLine.toCharArray()) { 18 | 19 | if (firstLine.indexOf(symbol) == 0) { 20 | String head = secondLine.substring(index); 21 | String tail = secondLine.substring(0, index); 22 | 23 | if ((head + tail).equals(firstLine)) { 24 | result = index; 25 | break; 26 | } 27 | } 28 | 29 | index++; 30 | } 31 | 32 | PrintWriter out = new PrintWriter(System.out); 33 | out.println(result); 34 | out.flush(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /short_sequence/ShortSequence.java: -------------------------------------------------------------------------------- 1 | package short_sequence; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class ShortSequence { 9 | public static void main(String[] args) throws IOException { 10 | StringBuilder string = new StringBuilder(); 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | int number = sc.nextInt(); 14 | 15 | int start = 1; 16 | StringBuilder memory = new StringBuilder(); 17 | while (string.length() <= number){ 18 | memory.append(start); 19 | string.append(memory); 20 | start++; 21 | } 22 | 23 | String result = String.valueOf(string.charAt(number-1)); 24 | 25 | FileWriter out = new FileWriter("output.txt"); 26 | out.write(result); 27 | out.close(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /similar_arrays/README.md: -------------------------------------------------------------------------------- 1 |

Похожие массивы (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Два массива называются похожими, если совпадают множества чисел, встречающихся в этих массивах.

4 |

Требуется написать программу, которая определит: похожи ли два заданных массива.

5 |

Формат ввода

6 |

Выходной файл output.txt должен содержать 1, если массивы похожи и 0 иначе.

7 |

Формат вывода

8 |

В выходной файл output.txt выведите an.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 |
ВводВывод
4 3
20 | 1 2 3 2
21 | 1 2 3
1
2 3
26 | 1 2
27 | 2 3 1
0
-------------------------------------------------------------------------------- /simple_again/README.md: -------------------------------------------------------------------------------- 1 |

Снова про простые числа (27%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 27%

3 |

Найдите простое число из отрезка [a, b] с максимальной суммой цифр. Если таких чисел несколько, выберите из них максимальное.

4 |

Напомним, что простым называется натуральное число, большее единицы и делящееся только на единицу и на само себя.

5 |

Формат ввода

6 |

Входной файл input.txt содержит два целых числа: a и b (1 ≤ a ≤ b ≤ 108, b−a ≤ 1000).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ на задачу. Если указанный отрезок не содержит простых чисел, выведите в выходной файл -1.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
ВводВывод
1 137
900 1000997
8 10-1
-------------------------------------------------------------------------------- /simple_calculation/README.md: -------------------------------------------------------------------------------- 1 |

Несложное вычисление (25%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 25%

3 |

Задано натуральное число n. Необходимо перевести его в k-ичную систему счисления и найти разность между произведением и суммой его цифр в этой системе счисления.

4 |

Например, пусть n = 239, k = 8. Тогда представление числа n в восьмеричной системе счисления — 357, а ответ на задачу равен 3 × 5 × 7 − (3 + 5 + 7) = 90.

5 |

Формат ввода

6 |

Входной файл input.txt содержит два натуральных числа: n и k (1 ≤ n ≤ 109, 2 ≤ k ≤ 10). Оба этих числа заданы в десятичной системе счисления.

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ на задачу (в десятичной системе счисления).

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
239 890
1000000000 7-34
-------------------------------------------------------------------------------- /simple_calculation/SimpleCalculation.java: -------------------------------------------------------------------------------- 1 | package simple_calculation; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class SimpleCalculation { 9 | private static int difference(long numberOfSystem){ 10 | int sum = 0; 11 | int multi = 1; 12 | 13 | while (numberOfSystem > 0){ 14 | long number = numberOfSystem % 10; 15 | sum += number; 16 | multi *= number; 17 | numberOfSystem /= 10; 18 | } 19 | return multi - sum; 20 | } 21 | 22 | public static void main(String[] args) throws IOException { 23 | Scanner sc = new Scanner(new FileReader("input.txt")); 24 | long numberIn = sc.nextLong(); 25 | int numberSystem = sc.nextInt(); 26 | 27 | long numberOfSystem = Long.parseLong(Long.toString(numberIn, numberSystem)); 28 | long result = difference(numberOfSystem); 29 | 30 | FileWriter out = new FileWriter("output.txt"); 31 | out.write(String.valueOf(result)); 32 | out.close(); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /simple_number/README.md: -------------------------------------------------------------------------------- 1 |

Необходимо вывести все простые числа от M до N включительно. (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Найдите количество чисел из отрезка [L, R], которые делятся на произведение своих цифр.

4 |

Формат ввода

5 |

Входной файл input.txt содержит два натуральных числа M и N, разделенных пробелом (2 ≤ M ≤ N ≤ 106)

6 |

Формат вывода

7 |

В выходной файл output.txt выведите все простые числа от M до N в порядке возрастания, по одному в строке. Если таковых чисел нет, то следует вывести «Absent».

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
ВводВывод
2 52
20 | 3
21 | 5
4 4Absent
-------------------------------------------------------------------------------- /simple_radical/README.md: -------------------------------------------------------------------------------- 1 |

Простой цифровой корень (31%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 31%

4 |

Определим простой цифровой корень (ПЦК) натурального числа N следующим образом. Если N - простое число, то ПЦК(N) = N. Если число однозначное, но не простое (то есть 1, 4, 6, 8 или 9), то ПЦК(N) = 0. В остальных случаях ПЦК(N) = ПЦК(S(N)), где S(N) - сумма цифр числа N.

5 |

Формат ввода

6 |

Во входном файле input.txt записано число N (1 ≤ N ≤ 231-1).

7 |

Формат вывода

8 |

Запишите в файл output.txt простой цифровой корень числа N.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
ВводВывод
10
33
12811
-------------------------------------------------------------------------------- /single_nod/README.md: -------------------------------------------------------------------------------- 1 |

Единичный НОД (23%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 23%

3 |

Заданы два натуральных числа в десятичной системе счисления, состоящие из единиц. В первом числе ровно N единиц, а во втором их ровно M. Требуется найти НОД этих чисел.

4 |

Напомним, что НОД (наибольший общий делитель) двух чисел a и b — это такое максимальное число c, что b делится на c и a делится на c.

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt записаны два целых числа N и M (1 ≤ N, M ≤ 2000).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите ответ без ведущих нулей.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 |
ВводВывод
5
20 | 4 4 1 5 4
9:9
1
25 | 1234
1234:0
-------------------------------------------------------------------------------- /split_parts/README.md: -------------------------------------------------------------------------------- 1 |

Разбиение на части (21%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 21%

3 |

Необходимо представить целое число N в виде суммы M примерно равных целых чисел. Будем считать, что числа примерно равны, если они отличаются друг от друга не более чем на единицу.

4 |

Формат ввода

5 |

Во входном файле input.txt записаны два натуральных числа N и M через пробел, каждое из которых не превосходит 30000.

6 |

Формат вывода

7 |

Выходной файл output.txt должен содержать M примерно равных целых чисел, сумма которых должна быть равна N. Все числа следует вывести в одной строке в порядке неубывания через пробел.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
13 43 3 3 4
72 89 9 9 9 9 9 9 9
27 | 28 | -------------------------------------------------------------------------------- /stairs/Stairs.java: -------------------------------------------------------------------------------- 1 | package stairs; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Stairs { 7 | private static int cubeCount; 8 | 9 | private static void getData() throws IOException{ // Получение данных 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | cubeCount = sc.nextInt(); 13 | } 14 | 15 | public static void main(String[] argv) throws IOException{ 16 | getData(); 17 | 18 | int result = (int) (Math.abs(1 - Math.sqrt(1 + 4 * (2 * cubeCount))) / 2); 19 | 20 | PrintWriter pw = new PrintWriter(new File("output.txt")); 21 | pw.print(String.valueOf(result)); 22 | pw.close(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /strawberry/Strawberry.java: -------------------------------------------------------------------------------- 1 | package strawberry; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Strawberry { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList berry = new ArrayList<>(); 9 | int numberBerry; 10 | String berryOut; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while(st.hasMoreTokens()){ 17 | berry.add(Integer.valueOf(st.nextToken())); 18 | } 19 | numberBerry = berry.get(0) + berry.get(1) - berry.get(2); 20 | berryOut = (numberBerry >= 0) ? String.valueOf(numberBerry) : "Impossible"; 21 | FileWriter fileOut = new FileWriter("output.txt"); 22 | fileOut.write(berryOut); 23 | fileOut.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /substrings_identical_letters/README.md: -------------------------------------------------------------------------------- 1 |

Подстроки из одинаковых букв (32%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 32%

4 |

В заданной строке, состоящей из малых английских букв, необходимо найти пару самых длинных подстрок, состоящих из одних и тех же букв (возможно, в разном порядке). Например, в строке twotwow это будут подстроки wotwo и otwow.

5 |

Формат ввода

6 |

Входной файл INPUT.TXT содержит исходную строку, длиной от 1 до 100 символов.

7 |

Формат вывода

8 |

Выходной файл OUTPUT.TXT должен содержать единственное число – длину подстрок в максимальной паре, или 0, если таких подстрок в строке нет.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
abcde0
abcdea5
-------------------------------------------------------------------------------- /substrings_identical_letters/SubstringsIdenticalLetters.java: -------------------------------------------------------------------------------- 1 | package substrings_identical_letters; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class SubstringsIdenticalLetters { 9 | public static void main(String[] args) throws IOException { 10 | int result = 0; 11 | String line = new Scanner(new FileReader("input.txt")).nextLine(); 12 | char[] chars = line.toCharArray(); 13 | 14 | for (char symbol : chars) { 15 | if (line.indexOf(symbol) != line.lastIndexOf(symbol)) { 16 | int diffs = line.lastIndexOf(symbol) - line.indexOf(symbol); 17 | if (diffs > result) { 18 | result = diffs; 19 | } 20 | } 21 | } 22 | 23 | PrintWriter out = new PrintWriter(System.out); 24 | out.println(result); 25 | out.flush(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /sum/README.md: -------------------------------------------------------------------------------- 1 |

Сумма(19%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 19%

3 |

Требуется посчитать сумму целых чисел, расположенных между числами 1 и N включительно.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записано единственное целое число N, не превышающее по абсолютной величине 104.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести одно целое число — сумму чисел, расположенных между 1 и N включительно.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
515
23 | 24 | -------------------------------------------------------------------------------- /sum/Sum.java: -------------------------------------------------------------------------------- 1 | package sum; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class Sum { 7 | private static int data; 8 | private static void getData() throws IOException{ 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | data = sc.nextInt(); 12 | } 13 | public static void main(String[] argv) throws IOException{ 14 | getData(); 15 | int sum = 0; 16 | if(data > 0){ 17 | for(int i = 0; i <= data; i++){ 18 | sum += i; 19 | } 20 | }else{ 21 | for(int i = 1; i >= data; i--){ 22 | sum += i; 23 | } 24 | } 25 | PrintWriter pw = new PrintWriter(new File("output.txt")); 26 | pw.print(String.valueOf(sum)); 27 | pw.close(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sum_n_digit_numbers/README.md: -------------------------------------------------------------------------------- 1 |

Сумма n-значных чисел (30%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 30%

4 |

По заданному n найти сумму всех n-значных чисел.

5 |

Формат ввода

6 |

В единственной строке входного файла INPUT.TXT записано одно натуральное число n (1 ≤ n ≤ 100).

7 |

Формат вывода

8 |

В единственную строку выходного файла OUTPUT.TXT нужно вывести все цифры суммы всех n-значных чисел.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
145
24905
-------------------------------------------------------------------------------- /sum_n_digit_numbers/SumNDigitNumbers.java: -------------------------------------------------------------------------------- 1 | package sum_n_digit_numbers; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class SumNDigitNumbers { 9 | public static void main(String[] args) throws IOException { 10 | PrintWriter out = new PrintWriter(System.out); 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | int n = sc.nextInt(); 14 | 15 | if (n == 1) { 16 | out.println(45); 17 | } else if (n == 2) { 18 | out.println(4905); 19 | } else { 20 | 21 | out.print(494); 22 | 23 | int x = n-2; 24 | for (int i = 0; i < x-1; i++) { 25 | out.print(9); 26 | } 27 | out.print(55); 28 | 29 | for (int i = 0; i < x; i++) { 30 | out.print(0); 31 | } 32 | } 33 | 34 | out.flush(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /teleportation/Teleportation.java: -------------------------------------------------------------------------------- 1 | package teleportation; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.util.Scanner; 7 | 8 | public class Teleportation { 9 | public static void main(String[] args) throws IOException { 10 | PrintWriter out = new PrintWriter(System.out); 11 | 12 | Scanner sc = new Scanner(new FileReader("input.txt")); 13 | String[] start = sc.nextLine().split(" "); 14 | String[] finish = sc.nextLine().split(" "); 15 | int x1 = Integer.parseInt(start[0]); 16 | int y1 = Integer.parseInt(start[1]); 17 | int x2 = Integer.parseInt(finish[0]); 18 | int y2 = Integer.parseInt(finish[1]); 19 | 20 | // считаем ходы слона 21 | if (Math.abs(x2-x1) == Math.abs(y2-y1)) { 22 | out.println(1); 23 | } else if ((x1+y1) % 2 == (x2+y2) % 2) { 24 | out.println(2); 25 | } 26 | else { 27 | out.println(0); 28 | } 29 | out.flush(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /temporary_key/TemporaryKey.java: -------------------------------------------------------------------------------- 1 | package temporary_key; 2 | 3 | import java.util.*; 4 | import java.io.*; 5 | 6 | public class TemporaryKey { 7 | private static int number; 8 | 9 | private static void getData() throws IOException{ 10 | FileReader file = new FileReader("input.txt"); 11 | Scanner sc = new Scanner(file); 12 | number = Integer.valueOf(sc.nextLine()); 13 | } 14 | 15 | public static void main(String[] argv) throws IOException{ 16 | getData(); 17 | int n = number; // Исходное число 18 | int s = 0; // Добавочное число 19 | while (number > 0){ 20 | if(number % 2 == 1){ 21 | s++; 22 | } 23 | number = number / 2; 24 | } 25 | int newKey = n + s; 26 | PrintWriter pw = new PrintWriter(new File("output.txt")); 27 | pw.print(String.valueOf(newKey)); 28 | pw.close(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /three_fat_men/threeFatMen.java: -------------------------------------------------------------------------------- 1 | package three_fat_men; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class threeFatMen { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList weight = new ArrayList<>(); 9 | boolean error = false; 10 | String out; 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while(st.hasMoreTokens()){ 17 | weight.add(Integer.valueOf(st.nextToken())); 18 | } 19 | for (Integer aWeight : weight) { 20 | if (aWeight < 94 || aWeight > 727) { 21 | error = true; 22 | } 23 | } 24 | weight.sort(Collections.reverseOrder()); // Сортировка в обратном порядке 25 | out = (error) ? "Error" : String.valueOf(weight.get(0)); 26 | FileWriter fileOut = new FileWriter("output.txt"); 27 | fileOut.write(out); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /time_sort/README.md: -------------------------------------------------------------------------------- 1 |

Сортировка времени (23%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 23%

3 |

Требуется выполнить сортировку временных моментов, заданных в часах, минутах и секундах.

4 |

Формат ввода

5 |

Во входном файле input.txt в первой строке записано число N (1 ≤ N ≤ 100), а в последующих N строках N моментов времени. Каждый момент времени задается 3 целыми числами - часы (от 0 до 23), минуты (от 0 до 59) и секунды (от 0 до 59).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите моменты времени, упорядоченные в порядке неубывания без ведущих нулей.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 24 | 28 | 29 | 30 |
ВводВывод
4
19 | 10 20 30
20 | 7 30 00
21 | 23 59 59
22 | 13 30 30 23 |
7 30 0
25 | 10 20 30
26 | 13 30 30
27 | 23 59 59
-------------------------------------------------------------------------------- /turn/README.md: -------------------------------------------------------------------------------- 1 |

Разворот (9%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 9%

3 |

Дано натуральное число N и последовательность из N элементов. Требуется вывести эту последовательность в обратном порядке.

4 |

Формат ввода

5 |

В первой строке входного файла input.txt записано натуральное число N (N ≤ 103). Во второй строке через пробел идут N целых чисел, по модулю не превосходящих 103 - элементы последовательности.

6 |

Формат вывода

7 |

В выходной файл output.txt выведите заданную последовательность в обратном порядке.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
ВводВывод
3
19 | 1 2 3
3 2 1
-------------------------------------------------------------------------------- /turn/Turn.java: -------------------------------------------------------------------------------- 1 | package turn; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Turn { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList lines = new ArrayList<>(); 9 | ArrayList numbers = new ArrayList<>(); 10 | StringBuilder out = new StringBuilder(); 11 | String str; 12 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 13 | Scanner sc = new Scanner(file); 14 | while (sc.hasNextLine()){ 15 | str = sc.nextLine(); 16 | lines.add(str); 17 | } 18 | StringTokenizer st = new StringTokenizer(lines.get(1), " "); 19 | while(st.hasMoreTokens()){ 20 | numbers.add(st.nextToken()); 21 | } 22 | Collections.reverse(numbers); 23 | for(String i : numbers){ 24 | out.append(i).append(" "); // Записать в переменную i и пробел 25 | } 26 | FileWriter fileOut = new FileWriter("output.txt"); 27 | fileOut.write(out.toString()); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /twenty_five/twentyFive.java: -------------------------------------------------------------------------------- 1 | package twenty_five; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class twentyFive { 7 | public static void main(String[] args) throws IOException { 8 | long strInt; 9 | long out; 10 | String str; 11 | FileReader file = new FileReader("input.txt"); // Считывание данных из файла 12 | Scanner sc = new Scanner(file); 13 | str = sc.nextLine(); 14 | strInt = Integer.valueOf(str); 15 | out = (long) Math.pow(strInt, 2); 16 | FileWriter fileOut = new FileWriter("output.txt"); 17 | fileOut.write(String.valueOf(out)); 18 | fileOut.close(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /two_bandits/TwoBandits.java: -------------------------------------------------------------------------------- 1 | package two_bandits; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class TwoBandits { 7 | public static void main(String[] args) throws IOException { 8 | int count = 0; 9 | int a, b; 10 | ArrayList numberIn = new ArrayList<>(); 11 | String str; 12 | FileReader file = new FileReader("input.txt"); 13 | Scanner sc = new Scanner(file); 14 | str = sc.nextLine(); 15 | StringTokenizer st = new StringTokenizer(str, " "); 16 | while(st.hasMoreTokens()){ 17 | numberIn.add(Integer.valueOf(st.nextToken())); 18 | } 19 | for (Integer aNumberIn : numberIn) { // Посчитать колво банок с простреленной дважды банкой (+1) 20 | count += aNumberIn; 21 | } 22 | count--; 23 | a = count - numberIn.get(0); 24 | b = count - numberIn.get(1); 25 | 26 | FileWriter fileOut = new FileWriter("output.txt"); 27 | fileOut.write(a + " " + b); 28 | fileOut.close(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /two_pow_n/README.md: -------------------------------------------------------------------------------- 1 |

2^N (30%)

2 |

Ссылка на задачу

3 |

Время: 1 сек.
Память: 16 Мб
Сложность: 30%

4 |

Необходимо вычислить значение 2n.

5 |

Формат ввода

6 |

В единственной строке входного файла input.txt записано натуральное число n (0 < n < 1000).

7 |

Формат вывода

8 |

В единственную строку выходного файла output.txt нужно вывести значение 2n.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
ВводВывод
38
101024
724722366482869645213696
-------------------------------------------------------------------------------- /two_pow_n/TwoPowN.java: -------------------------------------------------------------------------------- 1 | package two_pow_n; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class TwoPowN { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | int numberInput = sc.nextInt(); 13 | 14 | BigInteger result = BigInteger.TWO.pow(numberInput); 15 | 16 | PrintWriter out = new PrintWriter(System.out); 17 | out.println(result); 18 | out.flush(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /two_ring/README.md: -------------------------------------------------------------------------------- 1 |

Две окружности (17%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 17%

3 |

На плоскости даны две окружности. Требуется проверить, имеют ли они хотя бы одну общую точку.

4 |

Формат ввода

5 |

Входной файл input.txt состоит из двух строк. На каждой строке записана информация об одной окружности – координаты ее центра x и y (целые числа, по модулю не превосходящие 5000) и радиус (целое число 1 ≤ r ≤ 1000).

6 |

Формат вывода

7 |

В выходной файл output.txt выведите «YES», если окружности имеют хотя бы одну общую точку, и «NO» в противном случае.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 |
ВводВывод
0 0 2
19 | 0 3 2
YES
1 1 1
24 | 4 4 1
NO
29 | 30 | -------------------------------------------------------------------------------- /two_simple_number/README.md: -------------------------------------------------------------------------------- 1 |

2-простое число (28%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 28%

3 |

Число называется 2-простым, если являются простыми числа, составленные из цифр этого числа в возрастающем и убывающем порядках.

4 |

Требуется написать программу, которая по заданному числу определит его 2-простоту.

5 |

Формат ввода

6 |

Входной файл input.txt содержит натуральное число N (10 < N < 109).

7 |

Формат вывода

8 |

В выходной файл output.txt выведите сообщение «Yes», если число N является 2-простым и «No» - иначе.

9 |

Примеры

10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
ВводВывод
13Yes
23No
-------------------------------------------------------------------------------- /underground/Underground.java: -------------------------------------------------------------------------------- 1 | package underground; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Underground { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data = new ArrayList<>(); 9 | FileReader file = new FileReader("input.txt"); 10 | Scanner sc = new Scanner(file); 11 | String str = sc.nextLine(); 12 | StringTokenizer st = new StringTokenizer(str, " "); 13 | while (st.hasMoreTokens()){ 14 | data.add(Integer.valueOf(st.nextToken())); 15 | } 16 | int a = Math.abs(data.get(1) - data.get(2)) - 1; // Если едем прямо 17 | int b = (data.get(1) > data.get(2)) ? data.get(2) + Math.abs(data.get(0) - data.get(1)) - 1 : data.get(1) + (data.get(0) - data.get(2)) - 1; // Если едем в обратную сторону 18 | int result = (a > b) ? b : a; 19 | FileWriter fileOut = new FileWriter("output.txt"); 20 | fileOut.write(String.valueOf(result)); 21 | fileOut.close(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /unit/README.md: -------------------------------------------------------------------------------- 1 |

Единицы (16%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 16%

3 |

На уроках информатики вас, наверное, учили переводить числа из одних систем счисления в другие и выполнять другие подобные операции. Пришло время продемонстрировать эти знания. Найдите количество единиц в двоичной записи заданного числа.

4 |

Формат ввода

5 |

Во входном файле input.txt записано целое число n (0 ≤ n ≤ 2×109).

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести одно целое число — количество двоичных единиц в записи числа n.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ВводВывод
52
73
27 | -------------------------------------------------------------------------------- /unit/Unit.java: -------------------------------------------------------------------------------- 1 | package unit; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Unit { 7 | public static void main(String[] args) throws IOException { 8 | FileReader file = new FileReader("input.txt"); 9 | Scanner sc = new Scanner(file); 10 | long number = Long.valueOf(sc.nextLine()); 11 | long result = 0; 12 | while (number >= 1){ 13 | if(number % 2 == 1){ 14 | result++; // Увеличиваем инднекс, если в остатке единица 15 | number = number / 2; 16 | }else { 17 | number = number / 2; 18 | } 19 | 20 | } 21 | FileWriter fileOut = new FileWriter("output.txt"); 22 | fileOut.write(String.valueOf(result)); 23 | fileOut.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /unix/Unix.java: -------------------------------------------------------------------------------- 1 | package unix; 2 | 3 | import java.io.FileReader; 4 | import java.io.IOException; 5 | import java.io.PrintWriter; 6 | import java.math.BigInteger; 7 | import java.util.Scanner; 8 | 9 | public class Unix { 10 | public static void main(String[] args) throws IOException { 11 | Scanner sc = new Scanner(new FileReader("input.txt")); 12 | String[] numbersInput = sc.nextLine().split(" "); 13 | BigInteger oneNumber = new BigInteger(numbersInput[0], 3); 14 | BigInteger twoNumber = new BigInteger(numbersInput[1], 3); 15 | 16 | BigInteger sum = new BigInteger(String.valueOf(oneNumber.add(twoNumber)), 10); 17 | 18 | PrintWriter out = new PrintWriter(System.out); 19 | out.println(sum); 20 | out.flush(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /watermelon/Watermelon.java: -------------------------------------------------------------------------------- 1 | package watermelon; 2 | 3 | import java.io.*; 4 | import java.util.*; 5 | 6 | public class Watermelon { 7 | public static void main(String[] args) throws IOException { 8 | ArrayList data= new ArrayList<>(); // Исходные данные построчно 9 | ArrayList weight = new ArrayList<>(); // Вес всех арбузов 10 | String result; // Результат решения задачи 11 | FileReader file = new FileReader("input.txt"); 12 | Scanner sc = new Scanner(file); 13 | while (sc.hasNextLine()){ 14 | data.add(sc.nextLine()); 15 | } 16 | StringTokenizer st = new StringTokenizer(data.get(1), " "); 17 | while (st.hasMoreTokens()){ 18 | weight.add(Integer.valueOf(st.nextToken())); 19 | } 20 | Collections.sort(weight); // Сортируем коллекцию 21 | result = weight.get(0) + " " + weight.get(weight.size() - 1); // Берем первый и последний элемент коллекции 22 | FileWriter fileOut = new FileWriter("output.txt"); 23 | fileOut.write(result); 24 | fileOut.close(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /worst_divider/WorstDivider.java: -------------------------------------------------------------------------------- 1 | package worst_divider; 2 | 3 | import java.io.FileReader; 4 | import java.io.FileWriter; 5 | import java.io.IOException; 6 | import java.util.Scanner; 7 | 8 | public class WorstDivider { 9 | public static void main(String[] args) throws IOException { 10 | Scanner sc = new Scanner(new FileReader("input.txt")); 11 | String number = sc.nextLine(); 12 | char[] chNumber = number.toCharArray(); 13 | 14 | StringBuilder divider = new StringBuilder(); 15 | divider.append("1"); 16 | for(int i = chNumber.length-1; i > 0; i--){ 17 | if(chNumber[i] == '0'){ 18 | divider.append("0"); 19 | }else break; 20 | } 21 | 22 | FileWriter out = new FileWriter("output.txt"); 23 | out.write(String.valueOf(divider)); 24 | out.close(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /zero/README.md: -------------------------------------------------------------------------------- 1 |

Нули (16%)

2 |

Время: 1 сек.
Память: 16 Мб
Сложность: 16%

3 |

Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц.

4 |

Формат ввода

5 |

В единственной строке входного файла input.txt записана последовательность нулей и единиц (без пробелов). Суммарное количество цифр от 1 до 100.

6 |

Формат вывода

7 |

В единственную строку выходного файла output.txt нужно вывести искомую длину цепочки нулей.

8 |

Примеры

9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
ВводВывод
001011100001104
23 | 24 | --------------------------------------------------------------------------------