Skip to content

teetangh/competitive-programming-and-dsa

Repository files navigation

Competitive-Programming

This repository contains my various implementations of Data Structures and Algorithms as well as some foundational C++ practice programs.

It also contains various my solutions to problems asked in various Competitive Coding Sites, Events and Platforms.

File Naming Convention Summarised

I looked at some of my files after 2 months, i was confused about which one was complete, incomplete, TLE, WA, etc...

One more important thing is that I don't make multiple files for naive, efficient, optimized solutions, rather I make 3 separate functions:

solve_problem()
solve_problem_efficient()
solve_problem_optimised()

Notable Projects

NOTE: You can CLICK ON THE GIFS to ENLARGE THEM!

NOTE: Scroll down to see more demos.

Crossword Solver

Sudoku Solver

Usage of Sites

DSA

  • Hackerrank
  • HackerEarth
  • GeeksforGeeks
  • Interview Bit
  • Leetcode

Competitive Programming + Contests

  • SPOJ
  • Codechef
  • Codeforces

Index Last Updated on Wed 12 Oct 22:53:47 IST 2022

.
├── ascii_table.png
├── Career Cup
│   ├── intelligent_substrings.cpp
│   ├── xinput.txt
│   └── xoutput.txt
├── CodeChef
│   ├── Contests
│   │   ├── CookOff
│   │   ├── Long
│   │   │   └── 2022 September 09 Long Challenge
│   │   │       ├── nA
│   │   │       ├── nA.cpp
│   │   │       ├── nB
│   │   │       ├── nB.cpp
│   │   │       ├── nC
│   │   │       ├── nC.cpp
│   │   │       ├── nD
│   │   │       ├── nD.cpp
│   │   │       ├── nE
│   │   │       ├── nE.cpp
│   │   │       ├── xerror.txt
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   ├── Lunchtime
│   │   │   ├── 2020 August 14 Lunchtime Division 2
│   │   │   │   ├── 1.cpp
│   │   │   │   ├── 2.cpp
│   │   │   │   ├── 3.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   ├── 2022 August 18 Lunchtime Division 4
│   │   │   │   ├── nA
│   │   │   │   ├── nA.cpp
│   │   │   │   ├── nB.cpp
│   │   │   │   ├── nC.cpp
│   │   │   │   ├── nD
│   │   │   │   ├── nD.cpp
│   │   │   │   ├── nE
│   │   │   │   ├── nF
│   │   │   │   └── xoutput.txt
│   │   │   └── 2022 August 22 Lunchtime Division 4
│   │   │       ├── nA
│   │   │       ├── nA.cpp
│   │   │       ├── nB.cpp
│   │   │       ├── nC
│   │   │       ├── nC.cpp
│   │   │       ├── nD
│   │   │       ├── nD.cpp
│   │   │       ├── nE
│   │   │       ├── nE.cpp
│   │   │       ├── nF
│   │   │       ├── nF.cpp
│   │   │       ├── nG.cpp
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   ├── Random
│   │   │   ├── Code Fiesta 2020
│   │   │   │   ├── BUNKGUY_the_bunking_guy.cpp
│   │   │   │   ├── INTERn_my_interview.cpp
│   │   │   │   ├── MAKEHAPPn_happy_employee.cpp
│   │   │   │   ├── QFUNn_quarantine_fun.cpp
│   │   │   │   ├── SERIESTOn_xor_xnor_series.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   ├── Code Marathon
│   │   │   │   ├── output_sudoku_solver.gif
│   │   │   │   ├── sudokuSolver.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   ├── Codentine-2021-ACM-Manipal
│   │   │   │   ├── ACM15.cpp
│   │   │   │   ├── ACM16.cpp
│   │   │   │   ├── ACM1.cpp
│   │   │   │   ├── ACM7.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   ├── Feb Challenge 2018
│   │   │   │   ├── PERMPAL_permutations_and_palindrome.cpp
│   │   │   │   ├── sahil.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   └── Zonal Computing Olympiad 2015
│   │   │       ├── xinput.txt
│   │   │       ├── xoutput.txt
│   │   │       └── ZCO15002_variation_count.cpp
│   │   └── Starters
│   │       ├── #50-div3
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── nD
│   │       │   ├── nD.cpp
│   │       │   ├── tempCodeRunnerFile.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #52-div4
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── nD
│   │       │   ├── nD.cpp
│   │       │   ├── nE
│   │       │   ├── nE.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #53-div4
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── nD
│   │       │   ├── nD.cpp
│   │       │   ├── nE
│   │       │   ├── nE.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #54-div3
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── xerror.txt
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #55-div3
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── nD
│   │       │   ├── nD.cpp
│   │       │   ├── nE.cpp
│   │       │   ├── nF
│   │       │   ├── nF.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #56-div3
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── xerror.txt
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       └── #60-div3
│   │           ├── nA
│   │           ├── nA.cpp
│   │           ├── nB
│   │           ├── nB.cpp
│   │           ├── nC
│   │           ├── nC.cpp
│   │           ├── nD.cpp
│   │           ├── xinput.txt
│   │           └── xoutput.txt
│   ├── Problems
│   │   ├── Beginner
│   │   │   ├── CIELRCPT_ceil_and_receipt.cpp
│   │   │   ├── FCTRL2_small_factorials.cpp
│   │   │   ├── FLOW001_add_two_numbers.cpp
│   │   │   ├── FLOW002_find_remainder.cpp
│   │   │   ├── FLOW006_sum_of_digits.cpp
│   │   │   ├── FLOW008_helping_chef.cpp
│   │   │   ├── FLOW017_second_largest.cpp
│   │   │   ├── FLOW018_factorial.cpp
│   │   │   ├── HS08TEST_ATM.cpp
│   │   │   ├── INTEST_enormous_input_test.cpp
│   │   │   ├── MUFFINS3n_packaging_cupcakes.cpp
│   │   │   ├── PRB01n_primality_test
│   │   │   ├── PRB01n_primality_test.cpp
│   │   │   ├── START01_number_mirror.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── Easy
│   │   │   ├── ALEXNUMB_magic_pairs.cpp
│   │   │   ├── AMSGAME1n_subtraction_game1.cpp
│   │   │   ├── CHEFRES_chef_restaurant.cpp
│   │   │   ├── CIELAB_ceil_A_B.cpp
│   │   │   ├── CNOTE_chef_and_notebooks.cpp
│   │   │   ├── COOK82Cha_hussain_set.cpp
│   │   │   ├── COOK82Ch_voters_list.cpp
│   │   │   ├── COOK82Cn_hussain_set.cpp
│   │   │   ├── FCTRL_factorial.cpp
│   │   │   ├── FIRESCn_fire_escape_routes.cpp
│   │   │   ├── HORSES_racing_horses.cpp
│   │   │   ├── JOHNY_uncle_johnny.cpp
│   │   │   ├── LEBOMBSn_little_elephants_and_bombs.cpp
│   │   │   ├── MAXDIFF_maximum_difference.cpp
│   │   │   ├── NAME2_your_name_is_mine.cpp
│   │   │   ├── OJUMPS_chef_jumps.cpp
│   │   │   ├── PRIME1_prime_generator.cpp
│   │   │   ├── RRCOPY_copy_paste.cpp
│   │   │   ├── SALARY_min_num_of_moves.cpp
│   │   │   ├── SPCANDY_splitting_candies.cpp
│   │   │   ├── TEST_Life_the_Universe_and_Everything.cpp
│   │   │   ├── TOTRn_tourist_translations.cpp
│   │   │   ├── VOTERSh_voters_list.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   └── Medium
│   │       ├── COINSn_Bytelandian_gold_coins.cpp
│   │       ├── xinput.txt
│   │       └── xoutput.txt
│   └── Random
│       └── checkArrangement.cpp
├── CodeForces
│   ├── contests
│   │   ├── educational
│   │   │   └── #112-div2
│   │   │       ├── B_two_tables.cpp
│   │   │       ├── WA_A_pizza.cpp
│   │   │       ├── WA_C_coin_rows.cpp
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   └── regular
│   │       ├── #735-div2
│   │       │   ├── MLE_C_mikasa.cpp
│   │       │   ├── TLE_B_cobb.cpp
│   │       │   ├── WA_A_cherry.cpp
│   │       │   ├── WA_D_diana.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #736-div2
│   │       │   ├── A.cpp
│   │       │   ├── MLE_C2.cpp
│   │       │   ├── nB.cpp
│   │       │   ├── TLE_C3.cpp
│   │       │   ├── WA_C.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #737-div2
│   │       │   ├── nA.cpp
│   │       │   ├── nC.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #738-div2
│   │       │   ├── B_mocha_red_blue.cpp
│   │       │   ├── nA_mocha_and_math.cpp
│   │       │   ├── nC_mocha_hiking.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #740-div2
│   │       │   ├── nA.cpp
│   │       │   └── xinput.txt
│   │       ├── #810-div2
│   │       ├── #815-div2
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #816-div2
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #817-div4
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── nD
│   │       │   ├── nD.cpp
│   │       │   ├── nE
│   │       │   ├── nE.cpp
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       ├── #818-div2
│   │       │   ├── A.class
│   │       │   └── nB
│   │       ├── #820-div3
│   │       │   ├── nA
│   │       │   ├── nA.cpp
│   │       │   ├── nB
│   │       │   ├── nB.cpp
│   │       │   ├── nC
│   │       │   ├── nC.cpp
│   │       │   ├── xerror.txt
│   │       │   ├── xinput.txt
│   │       │   └── xoutput.txt
│   │       └── #826-div3
│   │           ├── nA
│   │           ├── nA.cpp
│   │           ├── nB
│   │           ├── nB.cpp
│   │           └── xinput.txt
│   └── problem-set
│       ├── 0001A_theatre_square.cpp
│       ├── 0004C_registration_system.cpp
│       ├── 0050A_domino_piling.cpp
│       ├── 0058A_chat_room.cpp
│       ├── 0069A_young_physicist.cpp
│       ├── 0071A_way_too_long_words.cpp
│       ├── 0112A_petya_and_strings.cpp
│       ├── 0118A_string_task.cpp
│       ├── 0158A_next_round.cpp
│       ├── 0231A_team.cpp
│       ├── 0263A_beuatiful_matrix.cpp
│       ├── 0281A_capitalization.cpp
│       ├── 0282A_bit_plus_plus.cpp
│       ├── 0339A_helpful_maths.cpp
│       ├── 0368B_sereja_and_suffixes.cpp
│       ├── 0519B_compilation_errors.cpp
│       ├── 0546A_soldier_and_bananas.cpp
│       ├── 0791A_bear_and_big_brother.cpp
│       ├── 1037C_equalize.cpp
│       ├── 1553B_reverse_string.cpp
│       ├── NEW_0122A_lucky_division.cpp
│       ├── NEW_1520D_same_differences.cpp
│       ├── xinput.txt
│       └── xoutput.txt
├── CodeVita
│   ├── editorial.py
│   ├── factorOf3.cpp
│   ├── xinput.txt
│   └── xoutput.txt
├── CodeZen
│   ├── 01 CPP
│   │   ├── 03 Conditionals and Loops
│   │   │   ├── prog01checkCase.cpp
│   │   │   ├── prog02sumOfNumbersTillEven.cpp
│   │   │   ├── prog03fahToCel.cpp
│   │   │   ├── prog04numberPattern1.cpp
│   │   │   ├── prog05numberPattern2.cpp
│   │   │   ├── prog06starPattern.cpp
│   │   │   ├── prog07totalSalary.cpp
│   │   │   ├── prog08sumOfEvenOdd.cpp
│   │   │   └── prog09powerOfNUmber.cpp
│   │   ├── 04 Patterns 1
│   │   │   ├── prog01squarePattern.cpp
│   │   │   ├── prog02triangularStarPattern.cpp
│   │   │   ├── prog03triangularNumberPattern.cpp
│   │   │   ├── prog04reverseNumberPattern.cpp
│   │   │   ├── prog05alphaPattern.cpp
│   │   │   ├── prog06characterPattern.cpp
│   │   │   └── prog07interestingAlphabets.cpp
│   │   ├── 05 Patterns 2
│   │   │   ├── prog01mirrorPattern.cpp
│   │   │   ├── prog02invertedNumberPattern.cpp
│   │   │   ├── prog03starPattern.cpp
│   │   │   ├── prog04triangleOfNumbers.cpp
│   │   │   └── prog05diamondOfStars.cpp
│   │   ├── 06 Operators and For Loop
│   │   │   ├── new08dec2bin.cpp
│   │   │   ├── prog01NthFibonacciNumber.cpp
│   │   │   ├── prog02allPrimeNumbers.cpp
│   │   │   ├── prog03countCharacters.cpp
│   │   │   ├── prog04sumOrProduct.cpp
│   │   │   ├── prog05termsOfAP.cpp
│   │   │   ├── prog06reverseOfNumber.cpp
│   │   │   ├── prog07bin2Dec.cpp
│   │   │   ├── prog09squareRootIntergral.cpp
│   │   │   └── prog10checkNumberSequence.cpp
│   │   ├── 07 Functions
│   │   │   ├── prog01fahToCelTable.cpp
│   │   │   └── prog02checkFibonacciMember.cpp
│   │   ├── 08 Arrays
│   │   │   ├── new04swapAlteranate.cpp
│   │   │   ├── new09tripletSum.cpp
│   │   │   ├── prog01arraySum.cpp
│   │   │   ├── prog02linearSearch.cpp
│   │   │   ├── prog03arrangeArrayNumbers.cpp
│   │   │   ├── prog05findUnique.cpp
│   │   │   ├── prog06findDuplicate.cpp
│   │   │   ├── prog07arrayIntersection.cpp
│   │   │   ├── prog08pairSum.cpp
│   │   │   └── prog10sort01.cpp
│   │   ├── 09 Searching and Sorting
│   │   │   ├── prog01BinarySearch.cpp
│   │   │   ├── prog02bubbleSort.cpp
│   │   │   ├── prog03insertionSort.cpp
│   │   │   ├── prog04mergeSortedArrays.cpp
│   │   │   ├── prog05PushZeroesEnd.cpp
│   │   │   ├── prog06rotateArray.cpp
│   │   │   ├── prog07FindSecondLargest.cpp
│   │   │   ├── prog08FindSortedArrayRotation.cpp
│   │   │   ├── prog09sort012.cpp
│   │   │   └── prog10sumOfTwoArrays.cpp
│   │   ├── 10 Chracter Arrays
│   │   │   ├── prog01checkPalindrome.cpp
│   │   │   ├── prog02replaceCharacter.cpp
│   │   │   ├── prog03trimSpaces.cpp
│   │   │   ├── prog04reverseEachWord.cpp
│   │   │   ├── prog05printSubstrings.cpp
│   │   │   ├── prog06columnWiseSum.cpp
│   │   │   ├── prog07largestRowORcolumn.cpp
│   │   │   ├── prog08wavePrint.cpp
│   │   │   ├── prog09spiralPrint.cpp
│   │   │   ├── prog10checkPermutation.cpp
│   │   │   ├── prog11removeConsecutiveDuplicates.cpp
│   │   │   ├── prog12reverseEachWord.cpp
│   │   │   ├── prog13removeAllOccurrencesOfChar.cpp
│   │   │   ├── prog14highestOccurringChar.cpp
│   │   │   └── prog15stringCompression.cpp
│   │   └── TESTS
│   │       ├── TEST 1
│   │       │   ├── prog1PyramidNumberPattern.cpp
│   │       │   ├── prog2NumberStarPattern.cpp
│   │       │   └── prog3SecondLargest.cpp
│   │       └── TEST 2
│   │           ├── prog01print2DArray.cpp
│   │           ├── prog02minLengthWord.cpp
│   │           └── prog03leadersInArray.cpp
│   ├── 02 Data Structures
│   │   ├── 01 Pointers
│   │   │   ├── Exercises
│   │   │   │   └── prog999.cpp
│   │   │   └── Programs
│   │   │       ├── prog01pointers.cpp
│   │   │       ├── prog02pointers2.cpp
│   │   │       ├── prog03pointers3.cpp
│   │   │       ├── prog04pointer_operator.cpp
│   │   │       ├── prog05array_pointers.cpp
│   │   │       ├── prog06char_array.cpp
│   │   │       ├── prog07functions_pointers.cpp
│   │   │       ├── prog08functions_arrays.cpp
│   │   │       └── prog09double_pointer.cpp
│   │   ├── 02 Dynamic Allocation
│   │   │   ├── prog01typecasting.cpp
│   │   │   ├── prog02reference_variables.cpp
│   │   │   ├── prog03dynamic_allocation.cpp
│   │   │   ├── prog04multidimarray.cpp
│   │   │   ├── prog05define.cpp
│   │   │   ├── prog06global.cpp
│   │   │   ├── prog07inline.cpp
│   │   │   ├── prog08default_arguments.cpp
│   │   │   ├── prog09const_ref.cpp
│   │   │   ├── prog10const_pointers.cpp
│   │   │   └── prog11const_pointers2.cpp
│   │   ├── 03 04 Recursion
│   │   │   ├── Assignment
│   │   │   │   ├── prog01replacePiRecursive.cpp
│   │   │   │   ├── prog02removeX.cpp
│   │   │   │   ├── prog03StringToInteger.cpp
│   │   │   │   ├── prog04pairStar.cpp
│   │   │   │   └── prog05towerOfHanoi.cpp
│   │   │   ├── Recursion 1
│   │   │   │   ├── prog01factorial.cpp
│   │   │   │   ├── prog02factorial2.cpp
│   │   │   │   ├── prog03power.cpp
│   │   │   │   ├── prog04reversePrint.cpp
│   │   │   │   ├── prog05countDigits.cpp
│   │   │   │   ├── prog08arraySum.cpp
│   │   │   │   ├── prog09checkNumber.cpp
│   │   │   │   ├── prog10firstIndexOfNumber.cpp
│   │   │   │   ├── prog11lastIndexOfNumber.cpp
│   │   │   │   ├── prog12allIndicesOfNumber.cpp
│   │   │   │   ├── prog13recursiveMultiplication.cpp
│   │   │   │   ├── prog14countZeroes.cpp
│   │   │   │   ├── prog15geometricSum.cpp
│   │   │   │   ├── prog16checkPalindrome.cpp
│   │   │   │   └── prog17sumOfDigits.cpp
│   │   │   └── Recursion 2
│   │   │       ├── new20RETURNpermutationsOfString.cpp
│   │   │       ├── prog01strings_recursion.cpp
│   │   │       ├── prog02replaceCharacter.cpp
│   │   │       ├── prog03removeConsecutiveDuplicates.cpp
│   │   │       ├── prog04mergeSort.cpp
│   │   │       ├── prog05quickSort.cpp
│   │   │       ├── prog06strings_intro.cpp
│   │   │       ├── prog07RETURNallSubsequences.cpp
│   │   │       ├── prog08RETURNKeypad.cpp
│   │   │       ├── prog09PRINTallSubsequences.cpp
│   │   │       ├── prog10PRINTKeypad.cpp
│   │   │       ├── prog11chackAB.cpp
│   │   │       ├── prog12staircase.cpp
│   │   │       ├── prog13BinarySearchRecursive.cpp
│   │   │       ├── prog14RETURNsubsetOfArray.cpp
│   │   │       ├── prog15PRINTsubsetOfArray.cpp
│   │   │       ├── prog16RETURNsubsetSumToK.cpp
│   │   │       ├── prog17PRINTsubsetSumToK.cpp
│   │   │       ├── prog18RETURNallCodesOfString.cpp
│   │   │       ├── prog19PRINTallCodesOfString.cpp
│   │   │       ├── prog21PRINTpermutationsOfString.cpp
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   ├── 05 Time and Space Complexity
│   │   │   ├── prog01findUnique.cpp
│   │   │   ├── prog02duplicateInArray.cpp
│   │   │   ├── prog03printArrayIntersection.cpp
│   │   │   ├── prog04pairSumArray.cpp
│   │   │   ├── prog05TripletSum.cpp
│   │   │   ├── prog06rotateArray.cpp
│   │   │   └── prog07nFindSortedArrayRotation.cpp
│   │   ├── 06 07 21 OOPS
│   │   │   ├── OOPS 1
│   │   │   │   ├── ComplexNumbers.cpp
│   │   │   │   ├── FractionUse.cpp
│   │   │   │   ├── include
│   │   │   │   │   ├── Fraction.hpp
│   │   │   │   │   └── Student.hpp
│   │   │   │   ├── StudentUse2.cpp
│   │   │   │   ├── StudentUse3.cpp
│   │   │   │   ├── StudentUse4.cpp
│   │   │   │   ├── StudentUse5.cpp
│   │   │   │   ├── StudentUse6.cpp
│   │   │   │   └── StudentUse.cpp
│   │   │   └── OOPS 2
│   │   │       ├── DyanmicArrayUse.cpp
│   │   │       ├── FractionNew1Use.cpp
│   │   │       ├── FractionNew2Use2.cpp
│   │   │       ├── FractionNew2Use3.cpp
│   │   │       ├── FractionNew2Use.cpp
│   │   │       ├── include
│   │   │       │   ├── DynamicArray.hpp
│   │   │       │   ├── FractionNew2.hpp
│   │   │       │   ├── FractionNew.hpp
│   │   │       │   ├── Polynomial.hpp
│   │   │       │   ├── Student2.hpp
│   │   │       │   ├── Student3.hpp
│   │   │       │   └── Student.hpp
│   │   │       ├── PolynomialUse.cpp
│   │   │       ├── Student1Use2.cpp
│   │   │       ├── Student1Use.cpp
│   │   │       ├── Student2Use.cpp
│   │   │       └── Student3use.cpp
│   │   ├── 08 09 Linked List
│   │   │   ├── include
│   │   │   │   ├── CNLinkedList.hpp
│   │   │   │   ├── FINALLinkedList.hpp
│   │   │   │   └── Node.cpp
│   │   │   ├── Linked list 1
│   │   │   │   ├── prog01LinkedList.cpp
│   │   │   │   ├── prog02LinkedList2.cpp
│   │   │   │   ├── prog03LinkedList3.cpp
│   │   │   │   ├── prog04LinkedList4.cpp
│   │   │   │   ├── prog05lengthOfLinkedListIterative.cpp
│   │   │   │   ├── prog06printParticularNode.cpp
│   │   │   │   ├── prog07insertAtPosition.cpp
│   │   │   │   ├── prog08deleteAtPostion.cpp
│   │   │   │   ├── prog09LengthOfLinkedListRecursive.cpp
│   │   │   │   ├── prog10insertNodeRecursive.cpp
│   │   │   │   ├── prog11deleteNodeRecursive.cpp
│   │   │   │   ├── prog12indexOfNIter.cpp
│   │   │   │   ├── prog13appendLastNToFirst.cpp
│   │   │   │   ├── prog14eliminateDuplicatesfromLL.cpp
│   │   │   │   ├── prog15printReverseLL.cpp
│   │   │   │   └── prog16palindromeLinkedList.cpp
│   │   │   └── Linked list 2
│   │   │       ├── prog01midPointOfLL.cpp
│   │   │       ├── prog02mergeTwoLLs.cpp
│   │   │       ├── prog03mergeSortUsingLL.cpp
│   │   │       ├── prog04reverseLinkedListRecursive.cpp
│   │   │       ├── prog05CNreverseLL.cpp
│   │   │       ├── prog06reverseLinkedListIterative.cpp
│   │   │       ├── prog07findNodeLLRec.cpp
│   │   │       ├── prog08arrangeOddEvenLL.cpp
│   │   │       ├── prog09skipMdeleteN.cpp
│   │   │       └── prog10swap2Nodes.cpp
│   │   ├── 10A Stacks
│   │   │   ├── include
│   │   │   │   ├── DynamicStackUsingArray.hpp
│   │   │   │   ├── StackUsingArray.hpp
│   │   │   │   ├── StackUsingLinkedList.hpp
│   │   │   │   └── TemplateStack.hpp
│   │   │   ├── Pair
│   │   │   │   ├── Pair.cpp
│   │   │   │   └── PairUse.cpp
│   │   │   └── Stack ADT
│   │   │       ├── new08checkRedundantBrackets.cpp
│   │   │       ├── new09stockSpan.cpp
│   │   │       ├── new10minimumBracketReversal.cpp
│   │   │       ├── prog01StackUse.cpp
│   │   │       ├── prog02DynamicStackUse.cpp
│   │   │       ├── prog03TemplateStackUse.cpp
│   │   │       ├── prog04StackUsingLinkedListUse.cpp
│   │   │       ├── prog05InbuiltStack.cpp
│   │   │       ├── prog06balancedParenthesis.cpp
│   │   │       └── prog07reverseStack.cpp
│   │   ├── 10B Queues
│   │   │   ├── include
│   │   │   │   ├── DynamicQueueUsingArray.hpp
│   │   │   │   └── QueueUsingArray.hpp
│   │   │   ├── new04mergeKsortedArrays.cpp
│   │   │   ├── prog01QueueUse.cpp
│   │   │   ├── prog02DynamicQueueUse.cpp
│   │   │   └── prog03reverseQueue.cpp
│   │   ├── 11 Trees
│   │   │   ├── include
│   │   │   │   ├── CNTree.hpp
│   │   │   │   ├── FINALTree.hpp
│   │   │   │   ├── PrcaticeTree.cpp
│   │   │   │   └── TreeNode.hpp
│   │   │   ├── TreeADT
│   │   │   │   ├── fail14isStructurallyIdentical.cpp
│   │   │   │   ├── prog01TreeUse.cpp
│   │   │   │   ├── prog02printLevelWise.cpp
│   │   │   │   ├── prog03numNodes.cpp
│   │   │   │   ├── prog04sumNodes.cpp
│   │   │   │   ├── prog05maxNodes.cpp
│   │   │   │   ├── prog06TreeHeightRecursive.cpp
│   │   │   │   ├── prog07depthOfNode.cpp
│   │   │   │   ├── prog08numLeafNodes.cpp
│   │   │   │   ├── prog09PreorderPostorder.cpp
│   │   │   │   ├── prog10deleteTree.cpp
│   │   │   │   ├── prog11containsX.cpp
│   │   │   │   ├── prog12nodesGreaterThanX.cpp
│   │   │   │   ├── prog13maxSumNode.cpp
│   │   │   │   ├── prog15nextLargerElement.cpp
│   │   │   │   ├── prog16secondLargestElement.cpp
│   │   │   │   └── prog17replaceWithDepthValue.cpp
│   │   │   └── Vectors
│   │   │       └── vectorUse.cpp
│   │   ├── 12 Binary Trees
│   │   │   ├── BT ADT
│   │   │   │   ├── new02printLevelWise.cpp
│   │   │   │   ├── new04findNode.cpp
│   │   │   │   ├── new05heightOfBT.cpp
│   │   │   │   ├── new06mirrorOfBT.cpp
│   │   │   │   ├── new09buildTreeFromInorderPostorder.cpp
│   │   │   │   ├── prog01BinaryTreeUse.cpp
│   │   │   │   ├── prog03numOfNodes.cpp
│   │   │   │   ├── prog07traversalOfBT.cpp
│   │   │   │   ├── prog08buildTreeFromInorderPreorder.cpp
│   │   │   │   └── prog10height_diameter_BT.cpp
│   │   │   └── include
│   │   │       ├── BinaryTreeNode.hpp
│   │   │       ├── CNBinaryTree.hpp
│   │   │       ├── FINALBinaryTree.hpp
│   │   │       └── PracticeBT.cpp
│   │   ├── 13 BST
│   │   │   ├── BST ADT
│   │   │   │   ├── fail01searchBST.cpp
│   │   │   │   ├── fail02printrange.cpp
│   │   │   │   ├── fail04constructBSTfromSortedArray.cpp
│   │   │   │   ├── fail05BSTtosortedLL.cpp
│   │   │   │   ├── prog03checkBST123.cpp
│   │   │   │   ├── prog06getRootToNodePath.cpp
│   │   │   │   └── prog07BinarySearchTreeUse.cpp
│   │   │   └── include
│   │   │       ├── BinarySearchTree.hpp
│   │   │       ├── BinaryTreeNode.hpp
│   │   │       ├── CNBinaryTree.hpp
│   │   │       ├── FINALBinaryTree.hpp
│   │   │       └── practiceBST.cpp
│   │   ├── 14 Heaps & Priority Queues
│   │   │   ├── Heaps & PQs ADT
│   │   │   │   ├── prog01HeapUseANDheapSort.cpp
│   │   │   │   ├── prog02maxPriorityQueue.cpp
│   │   │   │   └── prog03inplaceHeapSort.cpp
│   │   │   └── include
│   │   │       └── PriorityQueue.hpp
│   │   ├── 15 Hash Maps
│   │   │   ├── HashMapADT
│   │   │   │   ├── prog01mapUse.cpp
│   │   │   │   ├── prog02removeDuplicates.cpp
│   │   │   │   ├── prog03highestFrequency.cpp
│   │   │   │   ├── prog04printIntersection.cpp
│   │   │   │   ├── prog05PairSum0.cpp
│   │   │   │   └── prog06iterators.cpp
│   │   │   └── include
│   │   │       └── ourmap.hpp
│   │   └── 16 Tries and Huffman Coding
│   │       ├── include
│   │       │   ├── FINALTrie.hpp
│   │       │   └── TrieNode.hpp
│   │       └── Tries ADT
│   │           └── prog01TrieUse.cpp
│   ├── 03 Algorithms and Competitive Programming
│   │   ├── 01 Prerequisites
│   │   │   ├── prog001addTwoNumbers.cpp
│   │   │   ├── prog002conditionalStatements.cpp
│   │   │   ├── prog003onditionalStatements2.cpp
│   │   │   ├── prog004areaOfIntersectingRectangles.cpp
│   │   │   ├── prog005learningLoops.cpp
│   │   │   ├── prog006functions.cpp
│   │   │   ├── prog007arrays.cpp
│   │   │   ├── prog008arrays2.cpp
│   │   │   ├── prog009arrays3.cpp
│   │   │   ├── prog010twoDimArrays.cpp
│   │   │   ├── prog011finalProblem.cpp
│   │   │   ├── prog012evenOddSum.cpp
│   │   │   ├── prog013totalSumBoundariesDiagonals.cpp
│   │   │   ├── prog014pre4.cpp
│   │   │   ├── prog015targetMarbles.cpp
│   │   │   ├── prog016oscillatingPricesOfChakhri.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 02 Intro to CP
│   │   ├── 03 Pointers
│   │   │   ├── prog001pointers.cpp
│   │   │   ├── prog002pointerArithmetic.cpp
│   │   │   ├── prog003arraysAndPointes.cpp
│   │   │   ├── prog004characterPointers.cpp
│   │   │   ├── prog005pointersAndFunctions.cpp
│   │   │   ├── prog006pointersAndFunctions2.cpp
│   │   │   ├── prog007doublePointer.cpp
│   │   │   └── xoutput.txt
│   │   ├── 04 Dynamic Memory Allocation
│   │   │   ├── prog001addressTypecasting.cpp
│   │   │   ├── prog002referenceVariables.cpp
│   │   │   ├── prog003dynamicAllocation.cpp
│   │   │   ├── prog004multidimensionalArrays.cpp
│   │   │   ├── prog005hashDefine.cpp
│   │   │   ├── prog006globalVariables.cpp
│   │   │   ├── prog007inlineFunctions.cpp
│   │   │   ├── prog008defaultArguments.cpp
│   │   │   ├── prog009constantReferences.cpp
│   │   │   ├── prog010constantPointers.cpp
│   │   │   ├── prog012constantPointers2.cpp
│   │   │   └── xinput.txt
│   │   ├── 05 10 Recursion
│   │   │   ├── Recursion 1 Basic
│   │   │   │   ├── prog001factorial.cpp
│   │   │   │   ├── prog002fibonacci.cpp
│   │   │   │   ├── prog003power.cpp
│   │   │   │   ├── prog004printNumbersRecursively.cpp
│   │   │   │   ├── prog005countOfDigits.cpp
│   │   │   │   ├── prog007isSortedArray.cpp
│   │   │   │   ├── prog008sumOfArray.cpp
│   │   │   │   ├── prog009checkNumber.cpp
│   │   │   │   ├── prog010fistIndex.cpp
│   │   │   │   ├── prog011lastIndex.cpp
│   │   │   │   ├── prog012allIndices.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   └── Recursion 2 Advanced
│   │   │       ├── new20RETURNpermutationsOfString.cpp
│   │   │       ├── prog01strings_recursion.cpp
│   │   │       ├── prog02replaceCharacter.cpp
│   │   │       ├── prog03removeConsecutiveDuplicates.cpp
│   │   │       ├── prog04mergeSort.cpp
│   │   │       ├── prog05quickSort.cpp
│   │   │       ├── prog06strings_intro.cpp
│   │   │       ├── prog07RETURNallSubsequences.cpp
│   │   │       ├── prog08RETURNKeypad.cpp
│   │   │       ├── prog09PRINTallSubsequences.cpp
│   │   │       ├── prog10PRINTKeypad.cpp
│   │   │       ├── prog11chackAB.cpp
│   │   │       ├── prog12staircase.cpp
│   │   │       ├── prog13BinarySearchRecursive.cpp
│   │   │       ├── prog14RETURNsubsetOfArray.cpp
│   │   │       ├── prog15PRINTsubsetOfArray.cpp
│   │   │       ├── prog16RETURNsubsetSumToK.cpp
│   │   │       ├── prog17PRINTsubsetSumToK.cpp
│   │   │       ├── prog18RETURNallCodesOfString.cpp
│   │   │       ├── prog19PRINTallCodesOfString.cpp
│   │   │       ├── prog21PRINTpermutationsOfString.cpp
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   ├── 06 Time and Space Complexity Analysis
│   │   │   └── new001mergeSortTimeAnalysis.cpp
│   │   ├── 07 Language Tools
│   │   │   ├── prog001removeDuplicates.cpp
│   │   │   ├── prog002firstNonRepearingCharcterOfString.cpp
│   │   │   ├── prog003HussainSet.cpp
│   │   │   ├── prog004votersList.cpp
│   │   │   ├── prog005permuationAndPalindrome.cpp
│   │   │   ├── prog006loveForCharacters.cpp
│   │   │   ├── prog007differentNames.cpp
│   │   │   ├── prog008extractUniqueCharacters.cpp
│   │   │   ├── prog009warmReception.cpp
│   │   │   ├── prog010tellThePosition.cpp
│   │   │   ├── stl001vector.cpp
│   │   │   ├── stl002strings.cpp
│   │   │   ├── stl003pair.cpp
│   │   │   ├── stl004set.cpp
│   │   │   ├── stl005map.cpp
│   │   │   ├── stl006unordered_map.cpp
│   │   │   ├── stl007algorithm.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 08 Language Tools + Time and Complexity Assignment
│   │   │   ├── new001duplicatesInArray.cpp
│   │   │   ├── new003rotateArray.cpp
│   │   │   ├── new004findTheUniqueElement.cpp
│   │   │   ├── new006pairSum.cpp
│   │   │   ├── prog002tripletSum.cpp
│   │   │   ├── prog005digitSum.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 09 Searching and Sorting Applications
│   │   │   ├── new001TLE_aggressiveCows.cpp
│   │   │   ├── new001WA_aggressiveCows.cpp
│   │   │   ├── new005TLE_murderBF.cpp
│   │   │   ├── new007TLE_momosMarket.cpp
│   │   │   ├── prog001h_aggressiveCows.cpp
│   │   │   ├── prog002h_inversionsCount.cpp
│   │   │   ├── prog002inversionsCount.cpp
│   │   │   ├── prog003chefsRestaurant.cpp
│   │   │   ├── prog004variationCount.cpp
│   │   │   ├── prog005murderEfficient.cpp
│   │   │   ├── prog006an_distributeCandies.cpp
│   │   │   ├── prog006bh_distributeCandies.cpp
│   │   │   ├── prog008tajMahalEntry.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 11 Backtracking
│   │   │   ├── output_crossword_solver.gif
│   │   │   ├── prog001NQueensProblem.cpp
│   │   │   ├── prog002ratInAMaze.cpp
│   │   │   ├── prog003sudokuSolver.cpp
│   │   │   ├── prog004crosswordSolver.cpp
│   │   │   ├── self001haNQueensProblem.cpp
│   │   │   ├── self001nNQueensProblem.cpp
│   │   │   ├── self004crossword.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 12 Assignment Problems
│   │   │   ├── new002sortingTheSkills.cpp
│   │   │   ├── new003collectingTheBalls.cpp
│   │   │   └── prog001powerOfNumber.cpp
│   │   ├── 13 Bit Manipulation
│   │   │   ├── prog001turnOnIthBit.cpp
│   │   │   ├── prog002turnOffIthBit.cpp
│   │   │   ├── prog003returnFirstSetBit.cpp
│   │   │   ├── prog004turnOffFirstSetBit.cpp
│   │   │   ├── prog005clearAllBitsFromMSBtoI.cpp
│   │   │   ├── quiz001.cpp
│   │   │   ├── quiz002.cpp
│   │   │   ├── quiz003.cpp
│   │   │   ├── quiz004.cpp
│   │   │   ├── quiz005.cpp
│   │   │   └── quiz006_to_008.txt
│   │   ├── 14 Adhoc Problems
│   │   │   ├── prog001equalize.cpp
│   │   │   ├── prog003lightUpTheBulbs.cpp
│   │   │   ├── prog004circularListOfStudents.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 15 Modulo Arithmetic
│   │   │   └── numOfbalancedBTs.cpp
│   │   ├── 16 17 Dynammic Programming
│   │   │   ├── DP 1
│   │   │   │   ├── new012samAndSubstrings_BU.cpp
│   │   │   │   ├── new012samAndSubstrings.cpp
│   │   │   │   ├── new015boredom.cpp
│   │   │   │   ├── new022royAndCoinBoxes.cpp
│   │   │   │   ├── new023jonSnowAndHIsFavoriteNumber.cpp
│   │   │   │   ├── new025angryChildren.cpp
│   │   │   │   ├── prog001fibonacci_TD_BU.cpp
│   │   │   │   ├── prog002alphaCodes_TD_BU.cpp
│   │   │   │   ├── prog003alphaCodesWithZeroes_BU.cpp
│   │   │   │   ├── prog003halphaCodesWithZeroes_TD.cpp
│   │   │   │   ├── prog004longestIncreasingSubsequence_BU.cpp
│   │   │   │   ├── prog005lasgestBitonicSubsequence_BU.cpp
│   │   │   │   ├── prog006staircaseProblem_BU.cpp
│   │   │   │   ├── prog007coinChange_BU.cpp
│   │   │   │   ├── prog008minimumCostGrid_TD_BU.cpp
│   │   │   │   ├── prog009magicGrid2D_BU.cpp
│   │   │   │   ├── prog010a_Kadanes_algorithm.cpp
│   │   │   │   ├── prog010b_maxSumRectangle_BU.cpp
│   │   │   │   ├── prog011ah_constructTheArray_BU.cpp
│   │   │   │   ├── prog011b_constructTheArray_BU.cpp
│   │   │   │   ├── prog012boredom_BU.cpp
│   │   │   │   ├── prog013a_getMaxMoney_TD.cpp
│   │   │   │   ├── prog013b_getMaxMoney_BU.cpp
│   │   │   │   ├── prog014findMaxSquareWithAllZeros_BU.cpp
│   │   │   │   ├── prog015countBSTs_TD.cpp
│   │   │   │   ├── prog017minimumNumberOfChocolates_BU.cpp
│   │   │   │   ├── prog019hasanAndTrip.cpp
│   │   │   │   ├── prog020vanyaAndGCD.cpp
│   │   │   │   ├── prog021adjacentBitCount.cpp
│   │   │   │   ├── prog024alyonaAndSpreadsheet.cpp
│   │   │   │   ├── xinput.txt
│   │   │   │   └── xoutput.txt
│   │   │   └── DP 2
│   │   │       ├── new007BsubsetSumSpaceOptimized.cpp
│   │   │       ├── new011AsquareBrackets.cpp
│   │   │       ├── new011BsquareBrackets.cpp
│   │   │       ├── new012distinctSubsequences.cpp
│   │   │       ├── prog001longestCommonSubsequence.cpp
│   │   │       ├── prog002longestCommonSubsequenceStrings.cpp
│   │   │       ├── prog003editDistance_TD.cpp
│   │   │       ├── prog004balikaVadhu_TD.cpp
│   │   │       ├── prog005A_knapsack_TD.cpp
│   │   │       ├── prog005B_knapsack_BU.cpp
│   │   │       ├── prog006party_problem.cpp
│   │   │       ├── prog007AsubsetSum.cpp
│   │   │       ├── prog008miserMan.cpp
│   │   │       ├── prog009traderPorfit.cpp
│   │   │       ├── prog010charlieAndPilots.cpp
│   │   │       ├── xinput.txt
│   │   │       └── xoutput.txt
│   │   ├── 18 Greedy Techniques
│   │   │   ├── new004fractionalKnapsack.cpp
│   │   │   ├── prog001minAbsoluteDifferenceInArray.cpp
│   │   │   ├── prog002NikunjAndDonuts.cpp
│   │   │   ├── prog003activitySelection.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 19 Segment Trees
│   │   │   ├── include
│   │   │   │   └── segmentTree.hpp
│   │   │   ├── prog001segmentTreeOperations.cpp
│   │   │   ├── prog002rangeMinimumQuery.cpp
│   │   │   ├── prog003maximumPairSum.cpp
│   │   │   ├── prog004lazyPropagationUse.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── 24 Tries
│   │   │   └── new001trieXORpair.cpp
│   │   └── Graphs
│   │       └── 01 Graphs Part 1
│   │           ├── prog001DFS_BFS_connected_undirected.cpp
│   │           ├── prog002DFS_BFS_disconnected_undirected.cpp
│   │           ├── xinput.txt
│   │           └── xoutput.txt
│   ├── Doubts
│   │   ├── heap doubt.jpg
│   │   ├── pic1.png
│   │   └── pic2.png
│   ├── Random Programs
│   │   ├── changeSeq2.cpp
│   │   ├── changeSeq.cpp
│   │   ├── colsum.cpp
│   │   ├── digitSum.cpp
│   │   ├── sortBinaryArray.cpp
│   │   ├── SplitSequence.cpp
│   │   └── trickymacro.cpp
│   └── Very important.png
├── Codility
│   ├── count_operations.cpp
│   └── xoutput.txt
├── CSES
│   ├── 01-introductory
│   │   ├── prog001weirdAlgorithm
│   │   ├── prog001weirdAlgorithm.cpp
│   │   ├── prog002missingNumber
│   │   ├── prog002missingNumber.cpp
│   │   ├── prog003longestRepititions
│   │   ├── prog003repititions.cpp
│   │   ├── prog004increasingArray
│   │   ├── prog004increasingArray.cpp
│   │   ├── xinput.txt
│   │   └── xoutput.txt
│   └── 02-searching-sorting
│       ├── prog001distinctNumbers
│       ├── prog001distinctNumbers.cpp
│       ├── xinput.txt
│       └── xoutput.txt
├── data_type_ranges.jpeg
├── data_types_sizes.png
├── DP_CN.txt
├── FINAL450-checklist.txt
├── GeeksForGeeks
│   ├── Algorithms
│   │   ├── Backtracking
│   │   │   ├── generateParenthesisTLEiterative.cpp
│   │   │   ├── generateParenthesisWArecursive.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── Bit Magic
│   │   │   ├── checkSetBits.cpp
│   │   │   └── longestConsecutiveOnes.cpp
│   │   ├── DP
│   │   │   ├── CountNstairsWithoutOrder.cpp
│   │   │   ├── EqualSumPartition_DP_BU.cpp
│   │   │   ├── IsSubsetSum_DP_BU.cpp
│   │   │   ├── Knapsack01_DP_BU.cpp
│   │   │   ├── Knapsack01_DP_TD.cpp
│   │   │   ├── LongestCommonSubsequence.cpp
│   │   │   ├── MaxSumRectangles.cpp
│   │   │   ├── MinimumNumberOfCoins.cpp
│   │   │   ├── MinimumSubsetSumDifference_DP_BU.cpp
│   │   │   ├── NEWNCr2.cpp
│   │   │   ├── NEWNCr.cpp
│   │   │   ├── ReachGivenCoins.cpp
│   │   │   ├── RodCutting.cpp
│   │   │   ├── WildcardPatternMatching.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   └── Searching-Sorting
│   │       ├── BinarySearchRecursive.cpp
│   │       ├── MiddleOfThree.cpp
│   │       └── SearchRotatedSortedArray.cpp
│   ├── Data Structures
│   │   ├── Arrays
│   │   │   ├── CommonElements.cpp
│   │   │   ├── CountPairsWithGivenSum.cpp
│   │   │   ├── duplicatesInArray.cpp
│   │   │   ├── FindSmallestPositiveNumberInArray.cpp
│   │   │   ├── KadaneAlgoContiguousSubarrayMaxSum.cpp
│   │   │   ├── KlargeElements.cpp
│   │   │   ├── LeadersInArray.cpp
│   │   │   ├── MissingNumberInArray.cpp
│   │   │   ├── NEW_KthMaxMinElement.cpp
│   │   │   ├── NEW_MinimumNumberOfJumps.cpp
│   │   │   ├── NEWRotateArray.cpp
│   │   │   ├── peakInArray.cpp
│   │   │   ├── ReverseArrayString.cpp
│   │   │   ├── RotateArrayOnePosition.cpp
│   │   │   ├── rotateMatrixAnti90.cpp
│   │   │   ├── Sort012.cpp
│   │   │   ├── UinonOfTwoArrays.cpp
│   │   │   ├── waveArray.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── Graphs
│   │   │   ├── bfs.cpp
│   │   │   ├── bipartiteGraph.cpp
│   │   │   ├── dfs.cpp
│   │   │   ├── graphCycleUndirected.cpp
│   │   │   ├── NEWcovidSpread.cpp
│   │   │   ├── NEWCycleInDirectedGraph.cpp
│   │   │   ├── NEWtopologicalSort.cpp
│   │   │   ├── numIslands.cpp
│   │   │   ├── printAdjacencyList.cpp
│   │   │   ├── rottenOranges.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── Linked Lists
│   │   │   ├── countNodesOfLinkedList.cpp
│   │   │   ├── deleteNodeWithoutHeadPointer.cpp
│   │   │   ├── detectLoopInLinkedList.cpp
│   │   │   ├── findLengthOfLoop.cpp
│   │   │   ├── linkedListInsertion.cpp
│   │   │   ├── merge2SortedLists.cpp
│   │   │   ├── midPointOfLinkedList.cpp
│   │   │   ├── NEWIntersectionYshapedLinkedList.cpp
│   │   │   ├── NEW_NthNodeFromTheEnd.cpp
│   │   │   ├── palindromeLinkedList.cpp
│   │   │   ├── removeLoopInLinkedList.cpp
│   │   │   ├── reverseLinkedList.cpp
│   │   │   ├── rotateLinkedList.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   ├── Strings
│   │   │   ├── implementAtoI.cpp
│   │   │   ├── maxFrequencyOfWord.cpp
│   │   │   ├── multiplyStrings.cpp
│   │   │   ├── removeDuplicates.cpp
│   │   │   ├── wordBoggle.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   └── Trees
│   │       ├── Binary Trees
│   │       │   ├── boundaryTraversal.cpp
│   │       │   ├── BTtoCDLL.cpp
│   │       │   ├── constructBinaryTreeFromParentArray.cpp
│   │       │   ├── countLeaves.cpp
│   │       │   ├── diagonalTraversal.cpp
│   │       │   ├── diameterBT.cpp
│   │       │   ├── heightOfTree.cpp
│   │       │   ├── invertORMirrorBinaryTree.cpp
│   │       │   ├── isIdentical.cpp
│   │       │   ├── LCAofBT.cpp
│   │       │   ├── leftViewOfBinaryTree.cpp
│   │       │   ├── maxSumFromAnyNode.cpp
│   │       │   ├── maxWidthOfBT.cpp
│   │       │   ├── minMaxElementInTree.cpp
│   │       │   ├── sumTree.cpp
│   │       │   ├── topViewOfBT.cpp
│   │       │   ├── TraversalInorderRecursive.cpp
│   │       │   └── TraversalLevelOrderIterative.cpp
│   │       └── BST
│   │           ├── checkForBST.cpp
│   │           ├── fixNodesInBST.cpp
│   │           ├── LCAofBST.cpp
│   │           ├── minElementInBST.cpp
│   │           ├── NEW_deleteNodesGEthanK.cpp
│   │           ├── xinput.txt
│   │           └── xoutput.txt
│   ├── Mathematical
│   │   ├── armstrongNumber.cpp
│   │   └── squareRootOfNumber.cpp
│   ├── Programme Cpp GFG
│   │   └── EfficientCppGfg.cpp
│   ├── Programme STL GFG
│   │   ├── sortPair.cpp
│   │   └── spliceAndMerge.cpp
│   └── Public
│       └── Manipal Contest
│           ├── 1n1.cpp
│           ├── 1n2.cpp
│           ├── 2.cpp
│           ├── xinput.txt
│           └── xoutput.txt
├── HackerEarth
│   ├── Contests
│   │   └── August 23 Cicuits 2022
│   │       ├── nA
│   │       ├── nA.cpp
│   │       ├── xinput.txt
│   │       └── xoutput.txt
│   └── Data Structures
│       └── Graphs
│           ├── ConnectedComponentsInAGraph.cpp
│           ├── MonkAndIslands.cpp
│           └── WA_BishuAndHisGirlfriend.cpp
├── Hackerrank
│   ├── Alogrithms
│   │   ├── 01 Warmup
│   │   │   ├── diagonal_difference.cpp
│   │   │   ├── plus_minus.cpp
│   │   │   ├── simple_array_sum.cpp
│   │   │   ├── solve_me_first.cpp
│   │   │   └── staircase.cpp
│   │   ├── 08 DP
│   │   │   └── construct_the_array_BU.cpp
│   │   ├── 09 Greedy
│   │   └── 10 Bit Manipulation
│   │       ├── great_xor.cpp
│   │       └── lonely_integer.cpp
│   ├── Data Structures
│   │   ├── 01 Arrays
│   │   │   ├── array1d_reverse.cpp
│   │   │   ├── array2d_hourglass.cpp
│   │   │   ├── dynamic_array.cpp
│   │   │   ├── left_rotation.cpp
│   │   │   ├── NEWarray_manipulation.cpp
│   │   │   ├── sparse_arrays.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   └── 02 Linked List
│   │       ├── compare_linked_list.cpp
│   │       ├── delete__node.cpp
│   │       ├── insert_node_at_head.cpp
│   │       ├── insert_node_at_position.cpp
│   │       ├── insert_node_at_tail.cpp
│   │       ├── print_reverse_LL.cpp
│   │       └── print_singly_linked_list.cpp
│   ├── Programming Langauges
│   │   ├── Cpp
│   │   │   └── 01 Introduction
│   │   │       ├── Basic_Data_types.cpp
│   │   │       └── Hello_world.cpp
│   │   └── Python
│   │       ├── 01 Introduction
│   │       │   ├── arithmetic_operators.py
│   │       │   ├── function.py
│   │       │   ├── hello_world.py
│   │       │   ├── loops.py
│   │       │   ├── print_function.py
│   │       │   └── python_division.py
│   │       └── 02 Basic Data Types
│   │           ├── finding_percentage.py
│   │           ├── lists.py
│   │           ├── nested_list.py
│   │           ├── runner_up_score.py
│   │           ├── xinput.txt
│   │           └── xoutput.txt
│   └── Solution.java
├── InterviewBit
│   ├── Contests
│   │   ├── CodeDrift27August22
│   │   │   ├── n1
│   │   │   ├── n2.cpp
│   │   │   ├── n3B.cpp
│   │   │   ├── n3.cpp
│   │   │   ├── xinput.txt
│   │   │   └── xoutput.txt
│   │   └── CodeDriftXAugust21
│   │       ├── n1.cpp
│   │       ├── n2.cpp
│   │       ├── n3B.cpp
│   │       ├── n3.cpp
│   │       ├── xinput.txt
│   │       └── xoutput.txt
│   └── DSA
│       ├── 01 Arrays
│       │   ├── FindDuplicateInArray.cpp
│       │   ├── KthRowOfPascalTriangle.cpp
│       │   ├── MaximumAbsoluteDifference.cpp
│       │   ├── MinimumLightsToActivate.cpp
│       │   ├── MinStepsInInfiniteGrid.cpp
│       │   ├── NEW_MaximumSumTriplet.cpp
│       │   ├── PerfectPeakOfArr.cpp
│       │   ├── SmallestPositiveInteger.cpp
│       │   ├── SpiralOrderMatrix1.cpp
│       │   ├── xinput.txt
│       │   └── xoutput.txt
│       ├── 02 Math
│       │   ├── allFactors.cpp
│       │   ├── binaryRepresentation.cpp
│       │   ├── distributeInCircle.cpp
│       │   ├── ExcelColumnTitle.cpp
│       │   ├── hammingDistance.cpp
│       │   ├── isPower.cpp
│       │   ├── sieveOfEratosthenes.cpp
│       │   ├── totalBishopMoves.cpp
│       │   ├── xinput.txt
│       │   └── xoutput.txt
│       ├── 03 BInary Search
│       │   ├── NEW_woodCut.cpp
│       │   ├── searchInBitonicArray.cpp
│       │   ├── smallerOrUpperElements.cpp
│       │   ├── xinput.txt
│       │   └── xoutput.txt
│       ├── 04 Strings
│       │   ├── amazingSubarrays.cpp
│       │   ├── atoi.cpp
│       │   ├── compareVersionNunmber.cpp
│       │   ├── implementStrStr.cpp
│       │   ├── longestCommonPrefix.cpp
│       │   ├── NEW_rotationTimes.cpp
│       │   ├── NEW_validNumber.cpp
│       │   ├── validIPv4address.cpp
│       │   ├── xinput.txt
│       │   └── xoutput.txt
│       ├── 05 Bit Manipulation
│       │   ├── NEW_countTotalSetBits.cpp
│       │   ├── numberOfSetBits.cpp
│       │   ├── singleNumber2.cpp
│       │   ├── xinput.txt
│       │   └── xoutput.txt
│       └── 12 Trees
│           ├── BinaryTreeNode.hpp
│           └── CNBinaryTree.hpp
├── LeetCode
│   ├── 1039.minimum-score-triangulation-of-polygon.cpp
│   ├── 121.best-time-to-buy-and-sell-stock.cpp
│   ├── 1.two-sum.cpp
│   ├── 226.invert-binary-tree.cpp
│   ├── 523.continuous-subarray-sum.cpp
│   ├── 53.maximum-subarray.cpp
│   ├── 98.validate-binary-search-tree.cpp
│   ├── xinput.txt
│   └── xoutput.txt
├── README.md
├── Resources
│   ├── Guides
│   │   ├── FINAL450.xlsx
│   │   └── GUIDE TO COMPETITIVE PROGRAMMING_.pdf
│   ├── Snippets
│   │   ├── changeLettersToNumbers.py
│   │   ├── multispace_scanning.cpp
│   │   ├── xinput.txt
│   │   └── xoutput.txt
│   └── Templates
│       ├── bit_magic.cpp
│       ├── CP
│       │   ├── BitManipulation.cpp
│       │   ├── NumberTheory.cpp
│       │   └── SegmentTree.cpp
│       ├── cpp.tmpl
│       ├── DSA
│       │   ├── BinarySearchTree.cpp
│       │   ├── BinaryTree.cpp
│       │   ├── GraphUnweighted.cpp
│       │   ├── GraphWeighted.cpp
│       │   └── LinkedList.cpp
│       └── sublime_io_template.cpp
├── snakeToCamel.sh
├── SPOJ
│   ├── ACODEn_Alphacode.cpp
│   ├── ACPC10A_whats_next.cpp
│   ├── ADDREV_adding_reverse_numbers.cpp
│   ├── AE00_Rectangles.cpp
│   ├── AGGRCOWh_aggressive_cows.cpp
│   ├── AGGRCOWn_Aggressive_cows.cpp
│   ├── BUGLIFE_A_Bugs_Life.cpp
│   ├── CANDY_Candy_1.cpp
│   ├── FASHION_Fashion_Shows.cpp
│   ├── FCTRL2n_small_factorials.cpp
│   ├── FCTRLa_trailing_zeros.cpp
│   ├── FCTRLn_trailing_zeros.cpp
│   ├── JULKAn_Julka.cpp
│   ├── LASTDIGa_The_last_digit.cpp
│   ├── LASTDIGn_The_last_digit.cpp
│   ├── MPILOT_pilots.cpp
│   ├── NSTEPS_Number_Steps.cpp
│   ├── PALINn_The_Next_Palindrome.cpp
│   ├── PRIME1a_Prime_Generator.cpp
│   ├── PRIME1TLE_Prime_Generator.cpp
│   ├── PT07Y_Is_it_a_tree.cpp
│   ├── SAMER08Fn_Feynman.cpp
│   ├── SBSTR1n_substring_check.cpp
│   ├── TDKPRIMEn_finding_the_Kth_prime.cpp
│   ├── TESTa_Life_theUniverse_and_Everything.cpp
│   ├── TESTb_Life_theUniverse_Everything.cpp
│   ├── TOANDFRO_To_and_Fro.cpp
│   ├── xinput.txt
│   └── xoutput.txt
├── temp
│   ├── backtracking
│   │   └── nA.cpp
│   ├── icpc
│   │   └── nA.cpp
│   ├── set01
│   │   ├── nA
│   │   ├── nA.cpp
│   │   ├── nB
│   │   ├── nB.cpp
│   │   ├── nC
│   │   ├── nC.cpp
│   │   ├── nD.cpp
│   │   ├── nE.cpp
│   │   ├── Solution.java
│   │   ├── temp.py
│   │   ├── xinput.txt
│   │   └── xoutput.txt
│   ├── set02
│   │   ├── nA
│   │   ├── nA.cpp
│   │   ├── nB
│   │   ├── nB.cpp
│   │   ├── nC
│   │   ├── nC.cpp
│   │   ├── nD
│   │   ├── nD.cpp
│   │   ├── nE
│   │   ├── nE.cpp
│   │   ├── xinput.txt
│   │   └── xoutput.txt
│   └── test
│       ├── nA.cpp
│       ├── nB
│       ├── nB.cpp
│       ├── nC.cpp
│       ├── xerror.txt
│       ├── xinput.txt
│       └── xoutput.txt
├── Unclassified
│   ├── New
│   │   ├── add-two-ll.cpp
│   │   ├── CODEZEN_interestingSequences2.cpp
│   │   ├── CODEZEN_interestingSequences.cpp
│   │   ├── CODEZEN_rat_in_maze.cpp
│   │   ├── word_wrap_newspaper.cpp
│   │   ├── xinput.txt
│   │   └── xoutput.txt
│   └── Working
│       ├── grid-dp-sum.cpp
│       ├── xinput.txt
│       └── xoutput.txt
└── Youtube-learning
    ├── Basic ALGO
    │   ├── Backtracking_Branch_Bound
    │   ├── Divide_and_Conquer
    │   ├── DP
    │   │   ├── DP Aditya Verma
    │   │   │   ├── include
    │   │   │   │   ├── header001_subset_sum.hpp
    │   │   │   │   ├── header002_count_of_subset_sum.hpp
    │   │   │   │   └── header003_longest_common_subsequence.hpp
    │   │   │   ├── prog001_intro_to_dp.txt
    │   │   │   ├── prog002_types_of_knapsack.txt
    │   │   │   ├── prog003_01_Knapsack_DP_top_down_recursive_only.cpp
    │   │   │   ├── prog004_01_Knapsack_DP_top_down_recursion_memoization.cpp
    │   │   │   ├── prog005_01_Knapsack_DP_bottom_up_iterative.cpp
    │   │   │   ├── prog006_problems_similar_to_01_knapsack.txt
    │   │   │   ├── prog007_SubSet_Sum_Problem_DP_bottom_up.cpp
    │   │   │   ├── prog008_Equal_subset_sum_DP_bottom_up.cpp
    │   │   │   ├── prog009_Count_of_subset_sum_DP_bottom_up.cpp
    │   │   │   ├── prog010n_min_subset_diff_DP_bottom_up.cpp
    │   │   │   ├── prog011_count_of_subset_given_diff_DP_bottom_up.cpp
    │   │   │   ├── prog012_target_sum_DP_bottom_up.txt
    │   │   │   ├── prog013_ubounded_knapsack_DP_bottom_up.cpp
    │   │   │   ├── prog014_rod_cutting_problem.cpp
    │   │   │   ├── prog015_coin_change_max_ways_DP_bottom_up.cpp
    │   │   │   ├── prog018_LCS_Types.txt
    │   │   │   ├── prog019_longest_common_subsequence_DP_top_down_recursive_only.cpp
    │   │   │   ├── prog020_longest_common_subsequence_DP_top_down_recursive_memoization.cpp
    │   │   │   ├── prog021_longest_common_subsequence_DP_bottom_up.cpp
    │   │   │   ├── prog022_longest_common_substring_DP_bottom_up.cpp
    │   │   │   ├── prog023_print_longest_common_subsequence_DP_bottom_up.cpp
    │   │   │   ├── prog024n_shortest_common_supersequence_DP_bottom_up.cpp
    │   │   │   ├── prog025_min_num_of_insertions_deletions_DP_bottom_up.cpp
    │   │   │   ├── prog026_longest_palindromic_sequence_DP_bottom_up.cpp
    │   │   │   ├── prog033_matrix_chain_multiplication_DP_top_down_recursive_only.cpp
    │   │   │   ├── prog034A_matrix_chain_multiplication_DP_top_down_recursive_memoization.cpp
    │   │   │   ├── prog034Bn_matrix_chain_multiplication_DP_bottom_up_iterative.cpp
    │   │   │   └── xinput.txt
    │   │   └── DP Part 1 CodeNCode
    │   │       ├── prog01staircase.cpp
    │   │       ├── prog02staircase2.cpp
    │   │       ├── prog03TwoXnTilingProblem.cpp
    │   │       ├── prog04AsubsetsAndBitmasking1.cpp
    │   │       ├── prog04BsubsetsAndBitmaskingInegers.cpp
    │   │       ├── prog05subsetSumUsingBitmask.cpp
    │   │       ├── xinput.txt
    │   │       └── xoutput.txt
    │   ├── Greedy
    │   ├── Recursion
    │   │   ├── Recursion CB Webinar
    │   │   │   ├── knight_tour_multiple_solutions_input.txt
    │   │   │   ├── knight_tour_multiple_solutions_output.txt
    │   │   │   ├── prog01_factorial.cpp
    │   │   │   ├── prog02_Inc_Dec_Print.cpp
    │   │   │   ├── prog03A_kinght_tour.cpp
    │   │   │   ├── prog03B_kinght_tour_all_possible.cpp
    │   │   │   └── prog04_sudoku_solver.cpp
    │   │   └── Recursion MCS
    │   │       ├── basic_exponentiation.cpp
    │   │       ├── modular_exponentiation.cpp
    │   │       ├── xinput.txt
    │   │       └── xoutput.txt
    │   └── Searching and Sorting
    │       ├── Searching
    │       │   └── iterative_binary_search.cpp
    │       └── Sorting
    │           ├── failBFS.c
    │           ├── Jenny Sorting Algorithms
    │           │   ├── bubbleSort.c
    │           │   ├── heapANDheapSort.c
    │           │   ├── insertionSort.c
    │           │   └── selectionSort.c
    │           └── shelllSort.c
    ├── Basic DS
    │   ├── Arrays
    │   │   ├── PermutationGenerationRec.cpp
    │   │   ├── SubsetGenerationRecIter.cpp
    │   │   ├── xinput.txt
    │   │   └── xoutput.txt
    │   ├── Disjoint Sets
    │   │   ├── find.cpp
    │   │   └── union.cpp
    │   ├── Graphs
    │   │   ├──  Graphs Part 1 CodeNCode
    │   │   │   ├── new13FireEscapeRoutes.cpp
    │   │   │   ├── new15longestPathInTreeORdiameterOfGRaph.cpp
    │   │   │   ├── new19primePath.cpp
    │   │   │   ├── new20feasiblePath.cpp
    │   │   │   ├── prog02graph.cpp
    │   │   │   ├── prog03dfs.cpp
    │   │   │   ├── prog04connectedComponents.cpp
    │   │   │   ├── prog05ConnectedComponentsInAGraph.cpp
    │   │   │   ├── prog07BishuAndHisGF.cpp
    │   │   │   ├── prog08isItATree.cpp
    │   │   │   ├── prog09BipartiteTest.cpp
    │   │   │   ├── prog10BugsLife.cpp
    │   │   │   ├── prog11cycleDetection.cpp
    │   │   │   ├── prog12InOutTimesOfNodes.cpp
    │   │   │   ├── prog16subtreeSize.cpp
    │   │   │   ├── prog18bfs.cpp
    │   │   │   ├── prog23bridgesInGraph.cpp
    │   │   │   ├── prog26articulationPoints.cpp
    │   │   │   ├── prog29kahnsAlgorithmTopologicalSorting.cpp
    │   │   │   ├── prog32DFSIn2Dgrid.cpp
    │   │   │   ├── prog33connectedComponentsIn2DgridDFS.cpp
    │   │   │   ├── prog34BFSIn2Dgrid.cpp
    │   │   │   ├── xinput.txt
    │   │   │   └── xoutput.txt
    │   │   └──  Graphs Part 2 CodeNCode
    │   │       ├── prog001kruskal.cpp
    │   │       ├── prog002LCA.cpp
    │   │       ├── prog003LCABinaryLifting.cpp
    │   │       ├── prog004distanceBetweenTwoNodes.cpp
    │   │       └── xinput.txt
    │   ├── Linked_List
    │   ├── Queues
    │   ├── Segment Trees
    │   │   └── Code N Code
    │   │       ├── query.cpp
    │   │       └── segmentTree.cpp
    │   ├── Stacks
    │   ├── Trees
    │   │   └── Trees KnowledgeCenter
    │   │       └── prog001_trees.cpp
    │   └── Tries
    │       ├── AshishKumar
    │       │   └── TrieCompleteAK.cpp
    │       └── Faad-Coder
    │           ├── trie-implementation.cpp
    │           ├── xinput.txt
    │           └── xoutput.txt
    └── Competitive Programming
        ├── Bit Manipulation
        │   ├── generateSubsets.cpp
        │   ├── xinput.txt
        │   └── xoutput.txt
        └── Maths
            ├── Arithmetic
            ├── Combinatorics
            ├── Geometric Algorithms
            ├── Network Flow Algorithms
            └── Number Theory
                └── NT CodeNCode
                    ├── prog002primality_test.cpp
                    ├── prog004sieve_of_eratosthenes.cpp
                    ├── prog005prime_factorization.cpp
                    ├── prog007binary_modular_exponentiation.cpp
                    ├── prog010prime_factorization_using_sieve.cpp
                    ├── prog011matrix_exponentiation.cpp
                    ├── xinput.txt
                    └── xoutput.txt

245 directories, 1235 files

Releases

No releases published

Packages

No packages published

Languages