Years ago, I took a Programming Challenges course in college. The problems presented there were mostly designed to be solved by short algorithms. If you're looking for organized, well-structured code, try this other page instead.
If you came to this website looking for help regarding a specific problem, I'll be glad to show you my solution. However, please don't just copy my code. Be honest to yourself: use it to create your own solution. This is for your self-study.
I'm no longer into the programming challenges thing for quite some time now. Still, you might want to get a copy of the Programming Challenges Book. It's a valuable resource, and it helped me a lot.
ID | Problem name | Date | Source code |
---|---|---|---|
Lesson 1: Introduction | |||
UVa 272 | TeX Quotes | 2009-02-17 | tex.cpp |
UVa 100 | The 3n + 1 problem - hint | 2009-02-17 | 3n_1.cpp |
UVa 458 | The Decoder | 2009-02-17 | decoder.cpp |
Lesson 2: Introduction | |||
UVa 10258 | Contest Scoreboard - hint | 2009-02-19 | scoreboard.cpp |
UVa 10104 | Euclid Problem | 2009-02-19 | euclid.cpp |
SPOJBR F91 | f91 | 2009-02-19 | f91.cpp |
UVa 424 | Integer Inquiry | 2009-02-19 | inquiry.cpp |
UVa 10189 | Minesweeper | 2009-02-19 | minesweeper.cpp |
SPOJBR PLACAR | Quem vai ser reprovado | 2009-02-19 | reprovado.cpp |
UVa 382 | Perfection | 2009-02-20 | perfect.cpp |
Lesson 3: Stacks | |||
UVa 673 | Parentheses Balance | 2009-03-03 | balance.cpp |
UVa 732 | Anagrams by Stack - hint | 2009-03-05 | anagram.cpp |
UVa 514 | Rails | 2009-03-05 | rails.cpp |
Lesson 4: Queues | |||
SPOJ ONP | Transform the Expression | 2009-03-05 | transform.cpp |
SPOJBR NUMERDOS | Numero de Erdos - hint | 2009-03-06 | erdos.cpp |
SPOJ EXPRESS | Expressions | 2009-03-07 | expressions.cpp |
SPOJ HIKE | Hike on a Graph - hint | 2009-03-09 | hike.cpp |
Lesson 5: Data Structures | |||
UVa 540 | Team Queue | 2009-03-07 | team_queue.cpp |
UVa 10377 | Maze Traversal | 2009-03-10 | maze.cpp |
UVa 10142 | Australian Voting | 2009-03-11 | australian.c |
Lesson 6: Trees | |||
UVa 536 | Tree Recovery | 2009-03-12 | treerec.cpp |
UVa 122 | Trees on the level | 2009-03-12 | treelevel.cpp |
UVa 112 | Tree Summing | 2009-03-14 | treesum.cpp |
Lesson 7: Trees | |||
UVa 615 | Is It A Tree? | 2009-03-17 | istree.cpp |
UVa 10701 | Pre, in and post | 2009-03-17 | preinpost.cpp |
UVa 10308 | Roads in the North | 2009-03-22 | roads.cpp |
Lesson 8: Interval Trees / Range Minimum Query (RMQ) | |||
SPOJBR SORVETE | Sorvete | 2009-03-21 | sorvete.cpp |
SPOJ FREQUENT | Frequent Values - hint | 2009-07-03 | frequent.cpp |
Lesson 9: Backtracking | |||
SPOJBR JUNINA | Festa Junina | 2009-04-01 | junina.cpp |
SPOJ WORDS1 | Play on Words - hint | 2009-04-06 | words1.c |
Lesson 10: Backtracking | |||
SPOJ COMCB | Complete Chess Boards | 2009-04-02 | chess.cpp |
SPOJBR DOMINO | Domino | 2009-04-06 | domino.cpp |
SPOJ EUROPEAN | European railroad tracks | 2009-04-07 | european.cpp |
Lesson 11: Backtracking | |||
UVa 843 | Crypt Kicker - hint | 2009-04-14 | crypt.cpp |
UVa 861 | Little Bishops | 2009-04-19 | bishop2.c |
UVa 10160 | Servicing Stations - hint | 2009-04-26 | servstat.cpp |
Lesson 12: Backtracking | |||
SPOJ SOLIT | Solitaire | 2009-04-26 | solit.cpp |
UVa 10181 | 15-Puzzle Problem - hint | 2009-05-18 | 15puzzle.cpp |
SPOJ SOLIT | Solitaire (faster) | 2009-05-18 | solit2.c |
Lesson 13: Sorting | |||
UVa 612 | DNA Sorting - hint | 2009-04-23 | dna.cpp |
UVa 299 | Train Swapping - hint | 2009-04-23 | train.cpp |
UVa 10062 | Tell me the frequencies | 2009-04-24 | tellfreq.cpp |
UVa 10698 | Football Sort | 2009-04-25 | football.cpp |
UVa 120 | Stacks of Flapjacks | 2009-04-25 | flapjack.cpp |
Lesson 14 - Sorting | |||
UVa 10905 | Children's Game | 2009-04-28 | children.cpp |
UVa 11057 | Exact Sum | 2009-04-28 | exact.cpp |
UVa 263 | Number Chains | 2009-04-28 | chain.cpp |
UVa 10810 | Ultra-Quicksort - hint | 2009-04-28 | ultra.cpp |
Lesson 15 - Arithmetic and Algebra | |||
UVa 10018 | Reverse and Add | 2009-05-05 | revadd.cpp |
UVa 10077 | The Stern-Brocot Number System - hint | 2009-05-07 | brocot.cpp |
UVa 474 | Heads/Tails Probability | 2009-05-14 | prob.cpp |
UVa 701 | The Archeologists' Dilemma | 2009-05-14 | arch.cpp |
UVa 847 | A Multiplication Game | 2009-05-16 | mulg.cpp |
Lesson 16 - Combinatorics | |||
UVa 10198 | Counting - hint | 2009-05-07 | cnt.cpp |
UVa 10254 | The Priest Mathematician | 2009-05-13 | priest.cpp |
UVa 846 | Steps | 2009-05-16 | steps.cpp |
Lesson 17 - Combinatorics | |||
UVa 10784 | Diagonal - hint | 2009-05-16 | diag.cpp |
UVa 10219 | Find the ways! - hint | 2009-05-16 | fways.cpp |
UVa 10338 | Mischiveous Children | 2009-05-16 | mchild.cpp |
Lesson 18 - Dynamic Programming | |||
UVa 10066 | The Twin Towers | 2009-06-02 | twintowers.cpp |
UVa 830 | Biblioteca Otima | 2009-06-05 | bibo.c |
UVa 10154 | Weights and Measures - hint | 2009-06-29 | weme.cpp |
Lesson 19 - Dynamic Programming | |||
SPOJBR 1356 | Parque Jurassico | 2009-06-04 | parque.c |
UVa 10003 | Cutting Sticks | 2009-06-07 | cstick.cpp |
UVa 10271 | Chopsticks | 2009-06-27 | chopsticks.cpp |
SPOJBR 1758 | Last Year at Marienbad | 2009-06-30 | marienba.cpp |
Lesson 20 - Dynamic Programming | |||
SPOJBR 2607 | Campo de Minhocas | 2009-06-09 | minhoca.cpp |
SPOJBR 1365 | Palindrome | 2009-06-28 | palindrome.cpp |
SPOJ 43 | Copying Books | 2009-07-01 | cbook.cpp |
UVa 10261 | Ferry Loading - hint | 2009-07-01 | ferry.cpp |
Lesson 21 - Miscellaneous / Graphs | |||
UVa 10340 | All in All | 2009-06-18 | allinall.cpp |
UVa 10305 | Ordering Tasks - hint | 2009-06-18 | ordtask.cpp |
UVa 558 | Wormholes | 2009-06-18 | wormhole.cpp |
UVa 423 | MPI Maelstrom | 2009-06-27 | mpi.cpp |
UVa 200 | Rare Order | 2009-06-27 | rareorder.cpp |
UVa 10278 | Fire Station | 2009-06-28 | firestation.cpp |
UVa 10603 | Fill - hint | 2009-07-02 | fill.cpp |
TopCoder | |||
ApplePie | TCHS18 - ApplePie | 2009-04-07 | tchs18_250.cpp |
FrogDerby | TCHS18 - FrogDerby | 2009-04-07 | tchs18_500.cpp |
WarehouseJob | TCHS18 - WarehouseJob | 2009-04-07 | tchs18_1000.cpp |
DartThrow | TCHS19 - DartThrow | 2009-04-07 | tchs19_250.cpp |
RubeGoldberg | TCHS19 - RubeGoldberg | 2009-04-07 | tchs19_1000.cpp |
SalePitch | TCHS19 - SalePitch | 2009-04-07 | tchs19_500.cpp |
Postnet | TCHS20 - Postnet | 2009-05-05 | tchs20_500.cpp |
Surname | TCHS20 - Surname | 2009-05-05 | tchs20_250.cpp |
Touchdown | TCHS20 - Touchdown | 2009-05-05 | tchs20_1000.cpp |
HuffmanDecoding | SRM308 - HuffmanDecoding | 2009-05-31 | srm308_500.cpp |
MedianOfNumbers | SRM308 - MedianOfNumbers | 2009-05-31 | srm308_250.cpp |
TreasuresPacking | SRM308 - TreasuresPacking | 2009-05-31 | srm308_1000.cpp |
Library | SRM384 - Library | 2009-05-31 | srm384_500.cpp |
PowerGame | SRM384 - PowerGame | 2009-05-31 | srm384_1000.cpp |
Prank | SRM384 - Prank | 2009-05-31 | srm384_250.cpp |
GoodAndBadPostmen | TCHS30 - GoodAndBadPostmen | 2009-06-25 | tchs30_500.cpp |
HowManyBirthdays | TCHS30 - HowManyBirthdays | 2009-06-25 | tchs30_250.cpp |
FactoVisors | SRM406 - FactoVisors | 2009-06-29 | srm406_500.cpp |
HappyCells | SRM406 - HappyCells | 2009-06-30 | srm406_250.cpp |
AcidRain | TCHS30 - AcidRain | 2009-07-01 | tchs30_1000.cpp |
PolygonColors | SRM406 - PolygonColors | 2009-07-02 | srm406_1000.cpp |
Graph Algorithms | |||
SPOJBR MESA | Mesa da Sra Montagny! | 2009-02-25 | ep1.c |
SPOJBR ENERGIA | Transmissao de Energia | 2009-03-08 | ep2.c |
SPOJBR PASSEIO | Passeio da bicicleta | 2009-03-21 | ep3.c |
SPOJBR PREEMPOS | Pre, Em e Pos | 2009-04-02 | ep4.c |
SPOJBR MANUT | Manutencao | 2009-04-11 | ep5.c |
SPOJBR CHICAGO | 106 miles to Chicago | 2009-05-15 | ep6.c |
SPOJBR CIPO | Sistema Cipoviario | 2009-06-03 | ep7.c |