├── .gitignore ├── Advent of code 2019 ├── day1.1.cpp ├── day1.2.cpp ├── day2.1.cpp ├── day2.2.cpp ├── day3.1.cpp └── day3.2.cpp ├── AtCoder ├── Educational DP Contest │ ├── a.cpp │ ├── b.cpp │ ├── b.rb │ ├── c.cpp │ ├── d.cpp │ ├── e.cpp │ ├── f.cpp │ ├── g.cpp │ └── in.in ├── abc162 │ ├── a.cpp │ ├── b.cpp │ ├── c.cpp │ ├── d.cpp │ └── in.in └── abc165 │ ├── a.cpp │ └── b.cpp ├── Bomberman.cpp ├── CodeForces ├── 158A - Next Round.cpp ├── 173A - Rock-Paper-Scissors.cpp ├── 2017 JUST Programming Contest 3.0 │ ├── A.cpp │ ├── B.cpp │ └── in.in ├── 328A - PawnChess.cpp ├── 328b - The Monster and the Squirrel.cpp ├── 329A - 2Char.rb ├── 3A - Shortest path of the king.cpp ├── 582A - Chips Moving.cpp ├── 588A - Duff and Meat.cpp ├── 588A - Duff and Meat.rb ├── A1. Good Matrix Elements.cpp ├── B1. Rectangular Game.cpp ├── C1. Party.cpp ├── D1. Encrypting Messages.cpp ├── Edu Round #77 (Div 2) │ ├── 77A.cpp │ ├── 77B.cpp │ ├── 77C.cpp │ └── in.in ├── Edu Round #78 (Div 2) │ ├── 78A.cpp │ ├── 78B.cpp │ └── in.in ├── Edu Round #79 (Div 2) │ ├── 79A.cpp │ ├── 79B.cpp │ ├── 79C.cpp │ └── in.in ├── Edu Round #86 (Div 2) │ ├── a.cpp │ ├── b.cpp │ └── c.cpp ├── Global Round #6 │ ├── gr6A.cpp │ ├── gr6B.cpp │ └── in.in ├── Good Bye 2019 │ ├── A.cpp │ ├── B.cpp │ ├── C.cpp │ ├── D.cpp │ └── in.in ├── Hello 2020 │ ├── A.cpp │ ├── B.cpp │ └── in.in ├── Round #378 (Div 2) │ ├── 378A - Grasshopper And the String.cpp │ ├── 378B - Parade.cpp │ └── 378C - Epidemic in Monstropolis.cpp ├── Round #381 (Div 2) │ ├── 381A.cpp │ └── in.in ├── Round #383 (Div. 2) │ ├── 383A.cpp │ ├── 383B.cpp │ ├── 383C.cpp │ ├── alterc.cpp │ └── in.in ├── Round #384 (Div 2) │ ├── 384A.cpp │ ├── 384B.cpp │ ├── 384C.cpp │ └── in.in ├── Round #388 (Div 2) │ ├── 388A.cpp │ ├── 388B.cpp │ ├── 388C.cpp │ └── in.in ├── Round #579 (Div. 3) │ ├── 579A.cpp │ ├── 579B.cpp │ ├── 579C.cpp │ ├── 579E.cpp │ └── in.in ├── Round #596 (Div 2) │ ├── 596A.cpp │ └── in.in ├── Round #601 (Div 2) │ ├── 601A.cpp │ ├── 601B.cpp │ ├── 601C.cpp │ ├── 601D.cpp │ └── in.in ├── Round #603 (Div 2) │ ├── 603A.cpp │ ├── 603B.cpp │ ├── 603C.cpp │ └── in.in ├── Round #604 (Div 2) │ ├── 604A.cpp │ ├── 604B.cpp │ ├── 604C.cpp │ └── in.in ├── Round #605 (Div 3) │ ├── 605A.cpp │ ├── 605B.cpp │ ├── 605C.cpp │ └── in.in ├── Round #606 (Div 2) │ ├── 606A.cpp │ ├── 606B.cpp │ ├── 606C.cpp │ └── in.in ├── Round #609 (Div 2) │ ├── 609A.cpp │ ├── 609B.cpp │ ├── 609C.cpp │ └── in.in ├── Round #610 (Div 2) │ ├── 610A.cpp │ ├── 610B.cpp │ ├── 610C.cpp │ └── in.in ├── Round #611 (Div 3) │ ├── 611A.cpp │ ├── 611B.cpp │ ├── 611C.cpp │ ├── 611D.cpp │ ├── hack.cpp │ └── in.in ├── Round #613 (Div 2) │ ├── 613A.cpp │ ├── 613B.cpp │ ├── 613C.cpp │ ├── 613D.cpp │ └── in.in ├── Round #615 (Div 3) │ ├── 615A.cpp │ ├── 615B.cpp │ ├── 615C.cpp │ └── in.in ├── Round #621 (Div 2) │ ├── a.cpp │ ├── b.cpp │ ├── c.cpp │ └── in.in ├── Round #627 (Div 3) │ ├── b.cpp │ └── in.in ├── Round #629 (Div 3) │ ├── 629A.cpp │ ├── 629B.cpp │ └── in.in ├── Round #634 (Div 3) │ ├── 634A.cpp │ ├── 634B.cpp │ ├── 634C.cpp │ ├── 634D.cpp │ └── in.in ├── Round #635 (Div 2) │ ├── 635a.cpp │ ├── 635b.cpp │ ├── 635c.cpp │ └── in.in ├── Round #636 (Div 3) │ ├── 636a.cpp │ ├── 636b.cpp │ ├── 636c.cpp │ └── in.in ├── Round #637 (Div 2) │ ├── 637a.cpp │ ├── 637b.cpp │ ├── 637c.cpp │ └── in.in ├── Round #638 (Div 2) │ ├── a.cpp │ ├── b.cpp │ ├── c.cpp │ ├── d.cpp │ └── in.in ├── Round #639 (Div 2) │ ├── 639A.cpp │ ├── 639B.cpp │ ├── 639C.cpp │ └── in.in ├── Round #640 (Div 4) │ ├── 630F.cpp │ ├── 640A.cpp │ ├── 640B.cpp │ ├── 640C.cpp │ ├── 640D.cpp │ ├── 640E.cpp │ ├── 640G.cpp │ └── in.in ├── Ruby Leage contest │ ├── a.cpp │ ├── b.cpp │ ├── c.cpp │ ├── e.cpp │ ├── g.cpp │ └── in.in └── gym │ ├── 100800 - Conversation Log.rb │ ├── 100800 - Nimionese.rb │ ├── 1101.a.Minimum Integer.cpp │ ├── 1101.b.Accordion.cpp │ ├── 20c.Dijkstra.cpp │ └── in.in ├── CodeJam ├── Bike Tour.cpp ├── Dancing With the Googlers.cpp ├── Nesting Depth.cpp ├── Parenting Partnering Returns.cpp ├── Recycled Numbers.cpp ├── The Next Number.rb ├── Vestigium.cpp └── reverseWords.cpp ├── Codechef ├── December Challenge 2019 │ ├── BINADD.cpp │ ├── PLMU.cpp │ ├── SUBSPLAY.cpp │ ├── WATSCORE.cpp │ └── in.in ├── DSA │ └── Contest 1 │ │ ├── CONFLIP.cpp │ │ ├── a.cpp │ │ ├── b.cpp │ │ ├── c.cpp │ │ ├── d.cpp │ │ ├── e.cpp │ │ └── f.cpp ├── ISBIAS.cpp ├── ISBIAS2.cpp ├── ISBIN-SLOW.cpp ├── June Challenge 2020 │ ├── CHFICRM.cpp │ ├── COVDSMPL.cpp │ ├── EOEO.cpp │ ├── EVENM.cpp │ ├── GUESSG.cpp │ ├── PRICECON.cpp │ └── XYSTR.cpp ├── KS2.cpp ├── May Challenge 2020 │ ├── CORUS.cpp │ ├── COVID19.cpp │ └── TRPLSRT_final.cpp ├── PROXYC.cpp ├── RSIGNS.cpp └── SUBSPLAY.cpp ├── HackerEarth ├── Christmas string.cpp ├── June Circuits '19 │ ├── GCD-problem.cpp │ ├── determine-the-winner.cpp │ └── rotation.cpp └── prime-number-8.cpp ├── HackerRank ├── Cavity Map.cpp ├── Components in a graph.cpp ├── Find Digits.cpp ├── Find Strings(TLE).cpp ├── Find Strings.cpp ├── Gridland Metro.cpp ├── Ice Cream Parlor.cpp ├── K Difference.cpp ├── Matrix Land with dijkstra.cpp ├── Matrix Land with dp.cpp ├── Matrix Land.cpp ├── Sock Merchant.cpp ├── String Similarity.cpp ├── The Maximum Subarray.cpp ├── The Maximum Subarray.rb ├── new-year-chaos.rb └── twins.cpp ├── Live Archive ├── 4215 - Feynman.cpp ├── 4233 - Cryptoquote.cpp ├── 5932 - Refrigerator Magnets.cpp └── 5934 - Sokoban.cpp ├── PKU └── 3507 - Judging Olympia.cpp ├── POJ └── 2637 - WorstWeather Ever.cpp ├── README.md ├── RPC ├── 14th │ ├── commonkn.cpp │ ├── dwarves.cpp │ ├── formula.cpp │ └── in.in └── 15th │ ├── classy.cpp │ ├── excellence.cpp │ ├── gears.cpp │ ├── in.in │ ├── magic.java │ ├── triangle.cpp │ └── triangle.java ├── SPOJ ├── 1 - Life, the Universe, and Everything.cpp ├── 10399 - Conga line.cpp ├── 11031 - Bank Robbers.cpp ├── 206 - Bitmap.cpp ├── 3410 - Feynman.cpp ├── 3861 - Laser Phones.cpp ├── 400 - To and Fro.cpp ├── 42 - Adding Reversed Numbers.cpp ├── 6256 - Inversion Count.cpp ├── 902 - Hangover.cpp ├── Longest Common Substring.cpp ├── Prime Generator.cpp ├── julka.java └── temp laser.cpp ├── TJU ├── 11000 - Bee.cpp ├── 1196 - Web Navigation.cpp ├── 1208 - Fibonacci Numbers.cpp ├── 1401 - All in All.cpp ├── 1476 - A Simple Task.cpp ├── 1527 - Euchre Results.cpp ├── 1566 - Cowculations.cpp ├── 1571 - Perfection.cpp ├── 1630 - String Matching.cpp ├── 1644 - Reverse Text.cpp ├── 1930 - Doubles.cpp ├── 1935 - Symmetric Order.cpp ├── 1973 - Spin.cpp ├── 2149 - 01000001(Con Vector).cpp ├── 2149 - 01000001.cpp ├── 22775 - Bee Tree.cpp ├── 2364 - Disk Tree.cpp ├── 2601 - Dirichlet's Theorem on Arithmetic Progressions.cpp ├── 2636 - Hanafuda Shuffle.cpp ├── 2637 - Red and Black.cpp ├── 2782 - I am Lord Voldemort.cpp ├── 2790 - Fireworks Show.cpp ├── 2791 - Bovine Latin.cpp ├── 2945 - HERMAN.cpp ├── 3004 - Mispelling.cpp ├── 3005 - Conversions.cpp ├── 3006 - Encoding.cpp ├── 3007 - Decoding(TJU).cpp ├── 3059 - Rock, Paper, or Scissors?.cpp ├── 3105 - A Way To Find Primes.cpp ├── 3108 - Common item.cpp ├── 3150 - Sixth Grade Math.cpp └── 591 - Geometry Made Simple.cpp ├── TopCoder ├── Configure │ ├── CodeProcessor.jar │ ├── FileEdit.jar │ ├── PopsPack.jar │ └── TZTester.jar ├── SRM 537 DIV 2 │ ├── KingXNewBaby.cpp │ └── PrinceXToastbook.cpp ├── SRM 702 DIV 2 │ ├── GridSort.cpp │ └── TestTaking.cpp └── SRM 772 DIV 2 │ ├── PermutationAndMultiplication.cpp │ └── PlusCastle.cpp ├── USACO ├── gift1.cpp ├── ride.cpp └── test.cpp ├── UVa ├── 100 - 3n+1.cpp ├── 10004 - Bicoloring.cpp ├── 10009 - All Roads Lead Where.cpp ├── 10013 - Super long sums.cpp ├── 10035 - Primary Arithmetic.cpp ├── 10038 - Jolly Jumpers.cpp ├── 10055 - Hashmat the brave warrior.cpp ├── 10071 - Back to High School Physics.cpp ├── 10079 - Pizza Cutting.cpp ├── 10082 - WERTY.cpp ├── 10137 - The Trip.cpp ├── 10189 - Minesweeper.cpp ├── 10252 - Common Permutation.cpp ├── 10260 - Soundex.cpp ├── 10361 - Automatic Poetry.cpp ├── 10370 - Above Average.cpp ├── 10420 - List of Conquest.cpp ├── 10424 - Love Calculator.cpp ├── 10583 - Ubiquitous Religions.cpp ├── 10653 - Bombs! NO they are Mines!!.cpp ├── 10656 - Maximum Sum II.cpp ├── 10684 - The jackpot.cpp ├── 10696 - F91.cpp ├── 10783 - Odd Sum.cpp ├── 10812 - Beat the Spread!.c ├── 10812 - Beat the Spread!.cpp ├── 10986 - Sending email.cpp ├── 110401 - Vito's family.cpp ├── 11172 - Relational Operator.cpp ├── 11244 - Counting stars.cpp ├── 113 - Power of Cryptography.cpp ├── 11352 - Crazy King.cpp ├── 11495 - Bubbles and Buckets.cpp ├── 11498 - Division of Nlogonia.cpp ├── 11541 -Decoding(Uva).cpp ├── 11559 - Event Planning.cpp ├── 11727 - Cost Cutting.cpp ├── 11799 - Horror Dash.cpp ├── 118 - Mutant Flatworld Explorers.cpp ├── 11988 - Broken Keyboard (a.k.a. Beiju Text).cpp ├── 156 - Ananagrams.cpp ├── 195 - Anagram.cpp ├── 272 - TEX Quotes.cpp ├── 280 - Vertex.cpp ├── 294 - Divisors.cpp ├── 299 - Train swapping.cpp ├── 336 - A Node Too Far.cpp ├── 341 - Non-Stop Travel.cpp ├── 374 - Big Mod.cpp ├── 424 - Integer Inquiry.cpp ├── 429 - Word Transformation.cpp ├── 439 - Knight Moves.cpp ├── 458 - The Decoder.cpp ├── 483 - Word Scramble.cpp ├── 492 - Pig-Latin.cpp ├── 494 - Kindergarten Counting Game.cpp ├── 499 - What's The Frequency, Kenneth?.cpp ├── 507 - Jill Rides Again.cpp ├── 532 - Dungeon Master.cpp ├── 543 - Goldbach's Conjecture.cpp ├── 567 - Risk.cpp ├── 572 - Oil Deposits.cpp ├── 575 - Skew Binary.cpp ├── 576 - Haiku Review.cpp ├── 591 - Box of Bricks.cpp ├── 627 - The Net.cpp ├── 686 - Goldbach's Conjecture (II).cpp ├── 762 - We Ship Cheap.cpp ├── 793 - Network Connections.cpp ├── 900 - Brick Wall Patterns.cpp ├── 908 - Re-connecting Computer Sites.cpp ├── 929 - Number Maze.cpp ├── Cryptanalysis.cpp ├── Factorial.cpp ├── GCD Determinant.cpp ├── Is this the easiest problem.cpp └── Polynomial Showdown.cpp ├── ZOJ └── 1452 - Card Game - Kitty Fishing.cpp ├── leet-code-template.cpp ├── template.cpp └── ·Documentation ├── BIGINT.cpp ├── Books ├── Art_of_Programming_Contest_SE_for_uva.pdf └── Programming_Challenges.pdf ├── Data Structures ├── Fenwick Tree.cpp ├── Segment Tree.cpp └── Union Find Disjoint Set.cpp ├── Strings ├── Suffix arrays – a programming contest approach.pdf ├── Linear-Time Longest-Common-Pre x Computation in Sux Arrays and Its Applications.pdf ├── suffixArray.cpp └── suffixArray2.cpp └── manual(andmej).pdf /.gitignore: -------------------------------------------------------------------------------- 1 | */*.in 2 | */*.out 3 | .vscode 4 | */*.cppNoExt 5 | *.cppNoExt 6 | -------------------------------------------------------------------------------- /Advent of code 2019/day1.1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | using namespace std; 25 | 26 | int main(){ 27 | ios_base::sync_with_stdio(false); 28 | cin.tie(NULL); cout.tie(NULL); 29 | freopen("in.in", "r", stdin); 30 | 31 | long long mass, total; 32 | 33 | while(scanf("%lld\n",&mass)!=EOF){ 34 | total += (mass/3) -2; 35 | } 36 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | using namespace std; 25 | 26 | int main(){ 27 | ios_base::sync_with_stdio(false); 28 | cin.tie(NULL); cout.tie(NULL); 29 | freopen("in.in", "r", stdin); 30 | 31 | long long mass, finalTotal, total; 32 | 33 | while(scanf("%lld\n",&mass)!=EOF){ 34 | total = 0; 35 | while(true){ 36 | mass = (mass/3) -2; 37 | if(mass<=0) { break; } 38 | total += mass; 39 | } 40 | finalTotal += total; 41 | } 42 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | using namespace std; 25 | 26 | int main(){ 27 | ios_base::sync_with_stdio(false); 28 | cin.tie(NULL); cout.tie(NULL); 29 | freopen("in.in", "r", stdin); 30 | 31 | vector nums(145); 32 | 33 | for(int i = 0; i < 145; i++) cin>>nums[i]; 34 | nums[1] = 12; 35 | nums[2] = 2; 36 | int pos = 0; 37 | int code = nums[pos]; 38 | while(code != 99) { 39 | if(code == 1) { 40 | nums[nums[pos+3]] = nums[nums[pos+1]] + nums[nums[pos+2]]; 41 | } else { 42 | nums[nums[pos+3]] = nums[nums[pos+1]] * nums[nums[pos+2]]; 43 | } 44 | pos += 4; 45 | code = nums[pos]; 46 | } 47 | 48 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | using namespace std; 25 | 26 | int main(){ 27 | ios_base::sync_with_stdio(false); 28 | cin.tie(NULL); cout.tie(NULL); 29 | freopen("in.in", "r", stdin); 30 | 31 | vector nums(145); 32 | // Read numbers 33 | for(int i = 0; i < 145; i++) cin>>nums[i]; 34 | 35 | int noun, verb; 36 | for(noun = 0; noun < 100; noun++) { 37 | for(verb = 0; verb < 100; verb++) { 38 | vector numsCopy(nums); 39 | int pos = 0; 40 | numsCopy[1] = noun; 41 | numsCopy[2] = verb; 42 | int code = numsCopy[pos]; 43 | while(code != 99) { 44 | if(code == 1) { 45 | numsCopy[numsCopy[pos+3]] = numsCopy[numsCopy[pos+1]] + numsCopy[numsCopy[pos+2]]; 46 | } else { 47 | numsCopy[numsCopy[pos+3]] = numsCopy[numsCopy[pos+1]] * numsCopy[numsCopy[pos+2]]; 48 | } 49 | pos += 4; 50 | code = numsCopy[pos]; 51 | } 52 | if(numsCopy[0] == 19690720){ 53 | cout<<"noun: "< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | #define deb(x) cout<<#x<<": "<, bool> visitedPath; 33 | string wirePath; 34 | int minDistance = INT_MAX; 35 | int i = 1; 36 | // Read path 37 | while(getline (cin,wirePath)) { 38 | map, bool> currentPath; 39 | stringstream ss(wirePath); 40 | string move; 41 | pair pos = {0,0}; 42 | // Read moves 43 | while (getline(ss, move, ',')) { 44 | char direction = move.front(); 45 | move.erase(move.begin()); 46 | int distance = stoi(move); 47 | while(distance--){ 48 | switch (direction) { 49 | case 'U': pos.first++; break; 50 | case 'D': pos.first--; break; 51 | case 'R': pos.second++; break; 52 | case 'L': pos.second--; break; 53 | } 54 | if(visitedPath[pos] && !currentPath[pos]){ 55 | minDistance = min(minDistance, abs(pos.first) + abs(pos.second)); 56 | } 57 | currentPath[pos] = true; 58 | visitedPath[pos] = true; 59 | } 60 | } 61 | } 62 | cout< 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | using namespace std; 31 | 32 | 33 | int main(){ 34 | int participants[55]; 35 | int n,k,max;scanf("%d %d",&n,&k); 36 | for (int i = 0; i < n; ++i) 37 | { 38 | scanf("%d",&participants[i]); 39 | if(i+1==k) 40 | max= participants[i]; 41 | } 42 | int count=0; 43 | for (int i = 0; i < n; ++i) 44 | { 45 | if(participants[i]>=max && participants[i] > 0) 46 | count++; 47 | } 48 | printf("%d",count); 49 | 50 | return 0; 51 | } 52 | -------------------------------------------------------------------------------- /CodeForces/2017 JUST Programming Contest 3.0/in.in: -------------------------------------------------------------------------------- 1 | 1 2 | 5 3 | 2 3 4 | 2 3 5 | 4 2 6 | 3 5 7 | 9 4 8 | -------------------------------------------------------------------------------- /CodeForces/328b - The Monster and the Squirrel.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | #define N 54323 40 | 41 | using namespace std; 42 | 43 | long long fib[N]; 44 | 45 | int main(){ 46 | 47 | fib[3] = 1; 48 | fib[4] = 4; 49 | fib[5] = 9; 50 | int incr = 5; 51 | for(int i = 6; i < N; i++){ 52 | incr += 2; 53 | fib[i] = fib[i-1] + incr; 54 | } 55 | 56 | int n; 57 | 58 | while(cin >> n) 59 | cout << fib[n]; 60 | 61 | return 0; 62 | } -------------------------------------------------------------------------------- /CodeForces/582A - Chips Moving.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main() { 42 | freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /CodeForces/588A - Duff and Meat.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 173A - Duff and Meat 3 | CodeForces 4 | A. Duff and Meat 5 | Codeforces Round #326 (Div. 2) 6 | Esteban Arango Medina 7 | 8 | Solution. 9 | 10 | 11 | */ 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | using namespace std; 33 | 34 | 35 | int main(){ 36 | // freopen("in.in", "r", stdin); 37 | int n,a,p; 38 | int money = 0, price = 101; 39 | scanf("%d",&n); 40 | while(n--){ 41 | scanf("%d %d",&a,&p); 42 | if(price > p){ price = p; } 43 | money += price * a; 44 | } 45 | printf("%d",money); 46 | return 0; 47 | } -------------------------------------------------------------------------------- /CodeForces/588A - Duff and Meat.rb: -------------------------------------------------------------------------------- 1 | n = gets.to_i 2 | money = 0 3 | price = 101 4 | while n > 0 do 5 | n -= 1 6 | a,p = gets.chomp.split(' ').map!{ |o| o.to_i } 7 | price = p if price > p 8 | money += price * a 9 | end 10 | 11 | puts money 12 | -------------------------------------------------------------------------------- /CodeForces/A1. Good Matrix Elements.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Esteban Arango Medina 4 | */ 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | #define INF 1000000000 35 | 36 | 37 | int main(){ 38 | int n;scanf("%d",&n); 39 | int cNum,sum=0; 40 | int middle=(n-1)/2,lDiag=0,rDiag=n-1; 41 | for (int i = 0; i < n; ++i,rDiag--,lDiag++) 42 | { 43 | for (int j = 0; j < n; ++j) 44 | { 45 | scanf("%d",&cNum); 46 | if(i==middle){ 47 | sum+=cNum; 48 | }else if(j==middle){ 49 | sum+=cNum; 50 | }else if(j==lDiag && j==rDiag){ 51 | sum+=cNum; 52 | }else if(j==lDiag || j==rDiag){ 53 | sum+=cNum; 54 | } 55 | 56 | } 57 | } 58 | printf("%d\n",sum); 59 | 60 | return 0; 61 | 62 | } -------------------------------------------------------------------------------- /CodeForces/B1. Rectangular Game.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef map mii; 35 | #define INF 1000000000 36 | 37 | int posibles(long n){ 38 | long hasta = n>>1; 39 | for (long i = 2; i <= hasta; ++i) 40 | { 41 | if(n%i==0) 42 | return i; 43 | } 44 | return n; 45 | } 46 | 47 | long maxDivied(long n, long tempMax){ 48 | if(n==1) return tempMax; 49 | long menor = posibles(n); 50 | long nuevo=n/menor; 51 | tempMax+=nuevo; 52 | return maxDivied(nuevo,tempMax); 53 | } 54 | 55 | int main(){ 56 | long n;scanf("%ld",&n); 57 | long maxResp=n+1; 58 | long menor = posibles(n); 59 | long tempMax=0; 60 | long nuevo=n/menor; 61 | tempMax=n+nuevo; 62 | maxResp=max(maxResp,maxDivied(nuevo,tempMax)); 63 | printf("%ld\n",maxResp); 64 | return 0; 65 | 66 | } -------------------------------------------------------------------------------- /CodeForces/C1. Party.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Esteban Arango Medina 4 | */ 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | #define INF 1000000000 36 | 37 | int friends[2001][2001]={-1}; 38 | 39 | int main(){ 40 | int n,k,m; 41 | scanf("%d",&n); 42 | scanf("%d",&k); 43 | vector friends(n+1); 44 | for (int i = 1; i <= k; ++i) 45 | { 46 | int a,b; 47 | scanf("%d %d",&a,&b); 48 | friends[a].push_back(b); 49 | friends[b].push_back(a); 50 | } 51 | scanf("%d",&m); 52 | for (int i = 1; i <= m; ++i) 53 | { 54 | int a,b; 55 | scanf("%d %d",&a,&b); 56 | for(int j = 0;j 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | #define INF 1000000000 35 | 36 | 37 | int main(){ 38 | int n,m,c;scanf("%d %d %d",&n,&m,&c); 39 | vi N(n); 40 | vi M(m); 41 | vi result(n); 42 | int steps=(n-m+1); 43 | for (int i = 0; i < n; ++i) 44 | { 45 | scanf("%d",&N[i]); 46 | result[i]=N[i]; 47 | } 48 | for (int i = 0; i < m; ++i) 49 | { 50 | scanf("%d",&M[i]); 51 | } 52 | for (int i = 0; i < steps; ++i) 53 | { 54 | 55 | for (int j = 0,k=i; j < m; ++j,k++) 56 | { 57 | result[k]=(M[j]+result[k])%c; 58 | } 59 | } 60 | for (int i = 0; i < n; ++i) 61 | { 62 | printf("%d",result[i]); 63 | if(i+1 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main() { 42 | // freopen("in.in", "r", stdin); 43 | 44 | ll N, C, SUM; 45 | scanf("%lld\n",&N); 46 | 47 | while(N--) { 48 | ll ans = 0; 49 | scanf("%lld %lld\n",&C,&SUM); 50 | if(C >= SUM) { 51 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main() { 42 | // freopen("in.in", "r", stdin); 43 | 44 | ll T, A, B; 45 | scanf("%lld\n",&T); 46 | 47 | while(T--) { 48 | scanf("%lld %lld\n",&A,&B); 49 | if(A > B) { swap(A,B); } 50 | if((A+B)%3 ==0 && A*2 >= B ) { cout<<"YES"< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef unsigned long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | #define deb(x) cout<<#x<<": "< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | #define SWAP(a,b) {int t=a; a=b; b=t;} 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | 45 | string line; 46 | int min_jumps = -1, current_jump=1; 47 | getline(cin, line); 48 | int size = line.size(); 49 | for (int i = 0; i < size; ++i){ 50 | if(line[i] == 'A' || line[i] == 'E' || line[i] == 'I' || line[i] == 'O' || line[i] == 'U' || line[i] == 'Y'){ 51 | min_jumps = max(current_jump,min_jumps); 52 | current_jump = 1; 53 | }else{ 54 | current_jump++; 55 | } 56 | } 57 | min_jumps = max(current_jump,min_jumps); 58 | printf("%d\n",min_jumps); 59 | return 0; 60 | } -------------------------------------------------------------------------------- /CodeForces/Round #378 (Div 2)/378B - Parade.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | #define SWAP(a,b) {int t=a; a=b; b=t;} 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int n,l,r,k=0; 45 | ll current_max=0,total_l=0,total_r=0; 46 | scanf("%d",&n); 47 | vi L(n),R(n); 48 | for(int i = 0; i < n; ++i){ 49 | scanf("%d %d",&L[i],&R[i]); 50 | total_l += L[i]; 51 | total_r += R[i]; 52 | } 53 | current_max = abs(total_l - total_r); 54 | for (int i = 0; i < n; ++i){ 55 | ll new_max = abs((total_l-L[i]+R[i])-(total_r-R[i]+L[i])); 56 | if(new_max>current_max){ 57 | current_max=new_max; 58 | k=i+1; 59 | } 60 | } 61 | printf("%d\n",k); 62 | return 0; 63 | } -------------------------------------------------------------------------------- /CodeForces/Round #381 (Div 2)/381A.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 10000000000 40 | 41 | int main(){ 42 | freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | 45 | ll n, a, b, c, k, min_r; 46 | cin>>n>>a>>b>>c; 47 | if(n%4 == 0) 48 | printf("0\n"); 49 | else{ 50 | for (k = 1; (n+k)%4 != 0; ++k); 51 | printf("k: %lld\n", k); 52 | min_r = k * a; 53 | if(k == 2) 54 | min_r = min(min_r,b); 55 | if(k == 3) 56 | min_r = min(min_r, min(b+a,c)); 57 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mii; 39 | typedef map mss; 40 | #define INF 1000000000 41 | 42 | int main(){ 43 | // freopen("in.in", "r", stdin); 44 | // freopen("out.out", "w", stdout); 45 | int n; scanf("%d\n",&n); 46 | if(n == 0){ 47 | printf("1\n"); 48 | }else{ 49 | int arr[4] = {8, 4, 2, 6}; 50 | printf("%d\n", arr[(n-1)%4]); 51 | } 52 | return 0; 53 | } -------------------------------------------------------------------------------- /CodeForces/Round #383 (Div. 2)/383B.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mii; 39 | typedef map mss; 40 | #define INF 1000000000 41 | 42 | int main(){ 43 | // freopen("in.in", "r", stdin); 44 | // freopen("out.out", "w", stdout); 45 | 46 | int n, x, num; scanf("%d %d", &n, &x); 47 | ll total = 0; 48 | vi nums(n); 49 | mii seen; 50 | for(int i = 0; i < n; ++i){ 51 | scanf("%d", &num); 52 | if(seen.count(num^x)){ 53 | total += seen[num^x]; 54 | } 55 | if(seen.count(num)){ 56 | seen[num]++; 57 | }else{ 58 | seen[num] = 1; 59 | } 60 | } 61 | printf("%lld\n",total); 62 | 63 | return 0; 64 | 65 | } -------------------------------------------------------------------------------- /CodeForces/Round #383 (Div. 2)/alterc.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | vector cycles; 6 | vector used; 7 | bool ok = true; 8 | 9 | void dfs(vector &a, int start, int v, int len){ 10 | used[v] = true; 11 | if(used[a[v]]) { 12 | if(start == a[v])cycles.push_back(len & 1 ? len : len / 2); 13 | else ok = false; 14 | } else dfs(a, start, a[v], len + 1); 15 | } 16 | 17 | int gcd(int x, int y){ 18 | while(x > 0 && y > 0){ 19 | if(x > y)x %= y; else y %= x; 20 | } 21 | return x + y; 22 | } 23 | 24 | int lcm(int x, int y){ 25 | return x * y / gcd(x, y); 26 | } 27 | 28 | int solve(vector &a){ 29 | int res = -1; 30 | int n = a.size(); 31 | used.resize(n); 32 | for (int i = 0; i < n; i++){ 33 | if(!used[i])dfs(a, i, i, 1); 34 | } 35 | if (cycles.empty() || !ok)return -1; 36 | res = cycles[0]; 37 | for(int i = 1; i < cycles.size(); i++){ 38 | res = lcm(res, cycles[i]); 39 | } 40 | return res; 41 | } 42 | int main(){ 43 | int n; 44 | cin >> n; 45 | vector a(n); 46 | for(int i = 0; i < n; i++){ 47 | cin >> a[i]; 48 | a[i]--; 49 | } 50 | cout << solve(a) << endl; 51 | return 0; 52 | } -------------------------------------------------------------------------------- /CodeForces/Round #383 (Div. 2)/in.in: -------------------------------------------------------------------------------- 1 | 100 2 | 82 62 73 22 56 69 88 72 76 99 13 30 64 21 89 37 5 7 16 38 42 96 41 6 34 18 35 8 31 92 63 87 58 75 9 53 80 46 33 100 68 36 24 3 77 45 2 51 78 54 67 48 15 1 79 57 71 97 17 52 4 98 85 14 47 83 84 49 27 91 19 29 25 44 11 43 60 86 61 94 32 10 59 93 65 20 50 55 66 95 90 70 39 26 12 74 40 81 23 28 -------------------------------------------------------------------------------- /CodeForces/Round #384 (Div 2)/384A.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int n,a,b; 44 | string airports; 45 | scanf("%d %d %d\n",&n,&a,&b); 46 | a--;b--; 47 | 48 | cin>>airports; 49 | 50 | if(airports[a] == airports[b]){ 51 | printf("0\n"); 52 | }else{ 53 | printf("1\n"); 54 | } 55 | 56 | return 0; 57 | } -------------------------------------------------------------------------------- /CodeForces/Round #384 (Div 2)/384B.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | ll solve(ll n, ll k){ 42 | ll middle = (ll)pow(2, n) / 2; 43 | if(k == middle){ 44 | return n; 45 | }else{ 46 | if(k > middle) 47 | k -= middle; 48 | n--; 49 | return solve(n,k); 50 | } 51 | } 52 | 53 | int main(){ 54 | // freopen("in.in", "r", stdin); 55 | ll n,k; 56 | cin>>n>>k; 57 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef long double ld; 29 | typedef pair ii; 30 | typedef pair si; 31 | typedef pair iii; 32 | typedef vector vsi; 33 | typedef vector vii; 34 | typedef vector vi; 35 | typedef vector vc; 36 | typedef vector vs; 37 | typedef map msvs; 38 | typedef map msi; 39 | typedef map mss; 40 | #define INF 1000000000 41 | #define EPS 1e-9 42 | 43 | bool AreSame(ld a, ld b){ 44 | return fabs(a - b) < EPS; 45 | } 46 | 47 | int main(){ 48 | // freopen("in.in", "r", stdin); 49 | int n,x,y,z; scanf("%d",&n); 50 | x = n; 51 | z = n+1; 52 | y = z*z - z; 53 | 54 | ld left = (ld)2/(ld)n; 55 | 56 | ld right = ((ld)1/(ld)x) + ((ld)1/(ld)z) + ((ld)1/(ld)y); 57 | 58 | // cout<< left<< " - "< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int n; scanf("%d",&n); 45 | if(n%2 == 0){ 46 | printf("%d\n",n/2); 47 | for (int i = 0; i < n/2; ++i){ 48 | printf("2 "); 49 | } 50 | printf("\n"); 51 | }else{ 52 | printf("%d\n",(n/2)); 53 | for (int i = 0; i < (n/2) - 1; ++i){ 54 | printf("2 "); 55 | } 56 | printf("3 \n"); 57 | } 58 | 59 | return 0; 60 | } -------------------------------------------------------------------------------- /CodeForces/Round #388 (Div 2)/388B.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int a1,a2,b1,b2,c1,c2; 45 | scanf("%d %d",&a1,&a2); 46 | scanf("%d %d",&b1,&b2); 47 | scanf("%d %d",&c1,&c2); 48 | 49 | printf("3\n"); 50 | 51 | printf("%d %d\n",a1-b1+c1,a2-b2+c2); 52 | printf("%d %d\n",b1-a1+c1,b2-a2+c2); 53 | printf("%d %d\n",a1-c1+b1,a2-c2+b2); 54 | 55 | return 0; 56 | } -------------------------------------------------------------------------------- /CodeForces/Round #388 (Div 2)/in.in: -------------------------------------------------------------------------------- 1 | 5 2 | DDRRR -------------------------------------------------------------------------------- /CodeForces/Round #579 (Div. 3)/in.in: -------------------------------------------------------------------------------- 1 | 6 2 | 6 90 12 18 30 18 3 | -------------------------------------------------------------------------------- /CodeForces/Round #596 (Div 2)/596A.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main() { 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int a, b; 45 | scanf("%d %d", &a, &b); 46 | if (a == b) { 47 | printf("%d1 %d2", a, b); 48 | } else if (b - a == 1) { 49 | printf("%d9 %d0", a, b); 50 | } else if (a - b == 8) { 51 | printf("%d %d0", a, b); 52 | } else { 53 | printf("-1"); 54 | } 55 | 56 | return 0; 57 | } -------------------------------------------------------------------------------- /CodeForces/Round #596 (Div 2)/in.in: -------------------------------------------------------------------------------- 1 | 9 1 -------------------------------------------------------------------------------- /CodeForces/Round #601 (Div 2)/601A.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | ll T, a, b, tmp, ans; 45 | scanf("%lld\n",&T); 46 | while(T--) { 47 | ans = 0; 48 | scanf("%lld %lld\n",&a,&b); 49 | if(a == b) { cout< b) { swap(a,b); } 51 | tmp = b - a; 52 | 53 | ans += tmp/5; tmp %= 5; 54 | ans += tmp/2; tmp %= 2; 55 | ans += tmp/1; tmp %= 1; 56 | 57 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | #define deb(x) cout<<#x<<": "<>nums[i]; } 54 | sort(begin(nums), end(nums)); 55 | // printArray(nums); 56 | if(nums[2] >= nums[1] + nums[0]){ 57 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | #define deb(x) cout<<#x<<": "< ratings = {0, 1}; 54 | for(int i = 1; i <= sqrt(N); i++) { ratings.insert(i); ratings.insert(N/i);} 55 | cout< 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | int main() { 25 | #ifdef LOCAL_PROJECT 26 | freopen("in.in", "r", stdin); 27 | // freopen("out.out", "w", stdout); 28 | #endif 29 | int n; 30 | ios_base::sync_with_stdio(false); 31 | cin.tie(NULL); 32 | cin >> n; 33 | vector ans; 34 | map visited; 35 | map has_parent; 36 | vector to; 37 | queue q; 38 | int nz = 0; 39 | vector> seg; 40 | to.push_back(-1); 41 | for (int i=0; i> tmp; 44 | to.push_back(tmp); 45 | if (tmp == 0) { 46 | nz++; 47 | } else { 48 | has_parent[tmp] = true; 49 | } 50 | } 51 | for (int i=1; i<=n; i++) { 52 | if (visited[i] ) continue; 53 | if (to[i] != 0) { 54 | if (!has_parent[i]) { 55 | visited[i] = true; 56 | int ini = i; 57 | int cur = i; 58 | while (to[cur] != 0) cur = to[cur], visited[cur] = true;; 59 | seg.push_back({ini, cur}); 60 | } 61 | } 62 | } 63 | 64 | for (int i=1; i<=n; i++ ){ 65 | if (to[i] == 0 && !visited[i]) seg.push_back({i, i}); 66 | } 67 | for (int i=0; i 0 6 | m -= 1 7 | message = gets 8 | words = message.split(' ') 9 | messages[words.first] ||= [] 10 | messages[words.first] << words[1..-1] 11 | end 12 | 13 | words_to_count = messages.values.first.flatten 14 | 15 | messages.values[1..-1].each do |words| 16 | words_to_count = words_to_count & words.flatten 17 | end 18 | 19 | if words_to_count.empty? 20 | puts 'ALL CLEAR' 21 | else 22 | ordered_words = Hash[words_to_count.map{ |word| [word,0] }] 23 | 24 | messages.values.flatten.each do |word| 25 | if ordered_words.key? word 26 | ordered_words[word] += 1 27 | end 28 | end 29 | 30 | ordered_words.sort{|a,b| (b[1] <=> a[1]) == 0 ? (a[0] <=> b[0]) : (b[1] <=> a[1]) }.each do |word| 31 | puts word[0] 32 | end 33 | end 34 | 35 | -------------------------------------------------------------------------------- /CodeForces/gym/100800 - Nimionese.rb: -------------------------------------------------------------------------------- 1 | def first_letter letter 2 | capitalize = letter == letter.upcase 3 | 4 | letter.downcase! 5 | 6 | letters = { 'a'..'b' => 'b', 'c' => 'c', 'd'..'e' => 'd', 'f'..'i' => 'g', 'j'..'l' => 'k', 'm'..'o' => 'n', 'p'..'r' => 'p', 's'..'z' => 't'} 7 | 8 | converted = letters.detect{|k,v| k === letter}.last 9 | capitalize ? converted.upcase : converted 10 | end 11 | 12 | def last_letter letter 13 | case letter.downcase 14 | when 'p','k','n' 15 | 'oh' 16 | when 't' 17 | 'uh' 18 | when 'b','d','g','c' 19 | 'ah' 20 | else 21 | '' 22 | end 23 | end 24 | 25 | def process_syllables syllables, first 26 | hard_consonants = %w(b c d g k n p t) 27 | syllables.map do |syllable| 28 | hard_consonants.each { |hard_consonant| syllable.gsub!(hard_consonant,first) } 29 | syllable 30 | end 31 | end 32 | 33 | line = gets 34 | 35 | words = 36 | line.split(' ').map do |word| 37 | # All nimion words start with ‘hard’ consonants 38 | word = word.sub(/^./, first_letter(word.chars[0])) 39 | # Any hard consonant in subsequent syllables after the first one is remarkably better if it 40 | # is replaced with the same consonant as the one at the start of the word. 41 | if (syllables = word.split('-')).length > 1 42 | first_syllable = syllables[0] 43 | word = ([first_syllable] + process_syllables(syllables.drop(1),word.chars[0].downcase)).join('') 44 | end 45 | # No word ends in a hard consonant. 46 | word += last_letter(word.chars.last) 47 | end 48 | 49 | puts words.join(' ') 50 | 51 | 52 | -------------------------------------------------------------------------------- /CodeForces/gym/in.in: -------------------------------------------------------------------------------- 1 | |[a:b:|] -------------------------------------------------------------------------------- /CodeJam/Dancing With the Googlers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Recycled Numbers 3 | Code Jam 2012 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | int points [105]; 30 | 31 | int main(){ 32 | //freopen("in.in", "r", stdin); 33 | freopen("out.out", "w", stdout); 34 | int t,n,s,p,cases=1;scanf("%d",&t); 35 | while(t--){ 36 | printf("Case #%d: ",cases++); 37 | scanf("%d %d %d",&n,&s,&p); 38 | int actualScore,cont = 0; 39 | 40 | for (int i = 0; i < n; ++i) 41 | { 42 | scanf("%d",&actualScore); 43 | int rem = actualScore/3; 44 | if(rem*3 == actualScore && rem>=p) 45 | cont++; 46 | else if(rem*3 == actualScore && s && rem+1>=p && actualScore > p){ 47 | cont++; 48 | s--; 49 | } 50 | else if((actualScore - (rem*3) == 1) && rem+1 >=p) 51 | cont++; 52 | else if((actualScore - (rem*3) == 2) && (rem>=p || rem+1>=p)){ 53 | cont++; 54 | }else if((actualScore - (rem*3) == 2) && rem+2 >=p && s){ 55 | cont++; 56 | s--; 57 | } 58 | 59 | 60 | } 61 | 62 | 63 | printf("%d",cont); 64 | if(n) 65 | printf("\n"); 66 | 67 | } 68 | return 0; 69 | } -------------------------------------------------------------------------------- /CodeJam/The Next Number.rb: -------------------------------------------------------------------------------- 1 | file = File.exist?('in.in') ? File.new('in.in', 'r') : STDIN 2 | output = File.open( "out.out","w" ) 3 | def next_bigger(num) 4 | num = num.to_s.chars 5 | size = num.length 6 | for i in (size-1).downto(1) 7 | rigth = num[i] 8 | left = num[i-1] 9 | # The first place where the left-digit is less-than the right-digit is here. 10 | if left < rigth 11 | for j in (size-1).downto(i) 12 | # Find the smallest digit larger than rigth 13 | if left < num[j] 14 | num[i-1],num[j] = num[j],num[i-1] 15 | return (num[0..i-1] + num[i..size-1].sort).join 16 | end 17 | end 18 | end 19 | end 20 | (num << '0').join 21 | end 22 | 23 | n = file.gets.to_i 24 | 25 | for i in (1..n) 26 | output << "Case ##{i}: " + next_bigger(file.gets.chomp.to_i) + "\n" 27 | end -------------------------------------------------------------------------------- /CodeJam/reverseWords.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Reverse Words 3 | Code Jam 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | 29 | int main(){ 30 | freopen("B-small-practice.in", "r", stdin); 31 | freopen("reverseWords.out", "w", stdout); 32 | 33 | string s; 34 | int n,cases=1;scanf("%d",&n); 35 | getline(cin,s); 36 | while(n--){ 37 | 38 | size_t found; 39 | vector words; 40 | getline(cin,s); 41 | printf("Case #%d: ",cases++); 42 | found = s.find(" "); 43 | while(found!=string::npos){ 44 | //cout<=0 ; --i) 51 | { 52 | cout<=0) 54 | cout<<" "; 55 | } 56 | if(n) 57 | cout< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 46 | while(T--) { 47 | int num; cin>>num; 48 | while(num != 42) { cout<>num; } 49 | } 50 | return 0; 51 | } -------------------------------------------------------------------------------- /Codechef/DSA/Contest 1/b.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 46 | while(T--) { 47 | string s; cin>>s; 48 | reverse(all(s)); 49 | int i = 0; 50 | while(s[i] == '0') { i++; } 51 | rep(j, i, s.size()) { cout< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 46 | while(T--) { 47 | int n; cin>>n; 48 | vi budget(n); 49 | rep(i, 0, n) { cin>>budget[i];} 50 | sort(all(budget), greater()); 51 | int ans = 0; 52 | rep(i, 0, n) { ans = max(ans, (i+1) * budget[i]); } 53 | cout< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 46 | while(T--) { 47 | int n; cin>>n; 48 | int ans = 1, currentSpeed; 49 | cin>>currentSpeed; 50 | rep(i, 1, n) { 51 | int speed; cin>>speed; 52 | if(speed <= currentSpeed) { 53 | ans++; 54 | currentSpeed = speed; 55 | } 56 | } 57 | cout< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 46 | while(T--) { 47 | int n; cin>>n; 48 | int ans = 0; 49 | while(n/5 > 0) { ans += n/5; n /= 5; } 50 | cout< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 47 | while(T--) { 48 | int n; cin>>n; 49 | vector M(n, vi(n)); 50 | int x = 1; 51 | rep(i, 0, n) { 52 | if(i & 1){ 53 | per(j, 0, n) { M[i][j] = x++; } 54 | } else{ 55 | rep(j, 0, n) { M[i][j] = x++; } 56 | } 57 | } 58 | printMatrix(M); 59 | } 60 | return 0; 61 | } -------------------------------------------------------------------------------- /Codechef/June Challenge 2020/PRICECON.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 47 | while(T--) { 48 | int n, k; cin>>n>>k; 49 | int total = 0, lost = 0; 50 | rep(i, 0, n) { 51 | int p; cin>>p; 52 | total += p; 53 | lost += (p > k) ? k : p; 54 | } 55 | 56 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main() { 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int t; 45 | string n; 46 | scanf("%d", &t); 47 | while (t--) { 48 | ll sum = 0; 49 | cin >> n; 50 | for (size_t i = 0; i < n.size(); i++) { 51 | sum += (int)n[i] - 48; 52 | } 53 | int mod_10 = sum % 10; 54 | if (mod_10 == 0) { 55 | cout << n << "0" << endl; 56 | } else { 57 | cout << n << 10 - mod_10 << endl; 58 | } 59 | } 60 | return 0; 61 | } -------------------------------------------------------------------------------- /HackerEarth/June Circuits '19/GCD-problem.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int t; 44 | ll mod = 1000000007; 45 | scanf("%d", &t); 46 | while(t--) { 47 | ll n; scanf("%lld", &n); 48 | if(n > 4) { 49 | ll ans = ((n - 4) * 4) + 1; 50 | printf("%lld\n", ans % mod); 51 | } else { 52 | printf("0\n"); 53 | } 54 | } 55 | return 0; 56 | } -------------------------------------------------------------------------------- /HackerEarth/June Circuits '19/determine-the-winner.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | freopen("in.in", "r", stdin); 43 | int t; 44 | scanf("%d", &t); 45 | while(t--) { 46 | ll n, k; 47 | scanf("%lld %lld", &n, &k); 48 | if(n % (k + 1) == 0) { 49 | printf("Dishant\n"); 50 | } else { 51 | printf("Arpa\n"); 52 | } 53 | 54 | } 55 | return 0; 56 | } -------------------------------------------------------------------------------- /HackerEarth/June Circuits '19/rotation.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int n, max_common = 0, current_common = 0; 44 | scanf("%d", &n); 45 | string S,T; 46 | cin>>S>>T; 47 | 48 | for (int i = n-1, j = n-1; i >= 0; i--, j--) { 49 | if(S[j] == T[i]) { 50 | current_common++; 51 | max_common = max(max_common, current_common); 52 | } else { 53 | if(j != n - 1){ 54 | i++; 55 | } 56 | j = n; 57 | current_common = 0; 58 | } 59 | } 60 | 61 | printf("%d", n - max_common); 62 | return 0; 63 | } -------------------------------------------------------------------------------- /HackerRank/Cavity Map.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Cavity Map (30 points) 3 | HackerRank 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | #define SSTR( x ) dynamic_cast< std::ostringstream & >( \ 29 | ( std::ostringstream() << std::dec << x ) ).str() 30 | int adjacent_x[4]= {0,-1,0,1}; 31 | int adjacent_y[4]= {-1,0,1,0}; 32 | 33 | int main() { 34 | freopen("in.in", "r", stdin); 35 | int n; scanf("%d",&n); 36 | int cavity_map[n][n]; 37 | vector fila(n); 38 | vector< vector > result_map(n,fila); 39 | for(unsigned i = 0; i < n; ++i) for(unsigned j = 0; j < n; ++j) { 40 | scanf("%1d",&cavity_map[i][j]); result_map[i][j] = SSTR(cavity_map[i][j]); 41 | } 42 | // Process 43 | if(n > 2) { 44 | bool deeper = true; 45 | for(unsigned i = 1; i < n-1; ++i) for(unsigned j = 1; j < n-1; ++j) for(unsigned k=0, deeper = true;k<4 && deeper; k++){ 46 | if(cavity_map[i][j] <= cavity_map[i+adjacent_x[k]][j+adjacent_y[k]]) 47 | deeper = false; 48 | if(k==3 && deeper) 49 | result_map[i][j] = 'X'; 50 | } 51 | } 52 | for(unsigned i = 0; i < n; ++i, printf("\n")) for(unsigned j = 0; j < n; ++j) { 53 | cout< 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int findDigits(int n) { 42 | int total = 0; 43 | int initial_number = n; 44 | while(n > 0) { 45 | int current_dig = n % 10; 46 | if (current_dig != 0 && initial_number % current_dig == 0) { 47 | total++; 48 | } 49 | n /= 10; 50 | } 51 | return total; 52 | } 53 | 54 | int main(){ 55 | // freopen("in.in", "r", stdin); 56 | // freopen("out.out", "w", stdout); 57 | int n; 58 | scanf("%d\n", &n); 59 | for (int i = 0; i < n; i++){ 60 | int current; 61 | scanf("%d", ¤t); 62 | printf("%d\n", findDigits(current)); 63 | } 64 | 65 | return 0; 66 | } -------------------------------------------------------------------------------- /HackerRank/Ice Cream Parlor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mii; 39 | typedef map mss; 40 | #define INF 1000000000 41 | 42 | int main() { 43 | // freopen("in.in", "r", stdin); 44 | int t, n, m, ice, id_1, id_2; scanf("%d",&t); 45 | 46 | for(int test = 0; test < t; test++) { 47 | scanf("%d",&m); 48 | scanf("%d",&n); 49 | mii seen; 50 | for (int i = 0; i < n; i++){ 51 | scanf("%d", &ice); 52 | if(seen.count(m-ice)){ 53 | id_1 = i + 1; 54 | id_2 = seen[m-ice]; 55 | if(id_2 < id_1) 56 | swap(id_1,id_2); 57 | printf("%d %d\n", id_1, id_2); 58 | }else{ 59 | seen[ice] = i + 1; 60 | } 61 | } 62 | } 63 | return 0; 64 | } -------------------------------------------------------------------------------- /HackerRank/K Difference.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | K Difference (50 Points) 3 | Interviewstreet Challenge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Easy one, just make sure to 'break' the inner 'for' when you find one pair that satisfies the condition. 8 | */ 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | 31 | int main(){ 32 | int n,k,total=0; 33 | vector nums; 34 | scanf("%d %d",&n,&k); 35 | while(n--){ 36 | int num; 37 | scanf("%d",&num); 38 | nums.push_back(num); 39 | } 40 | for (int i = 0; i 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | typedef long long ll; 28 | typedef pair ii; 29 | typedef pair si; 30 | typedef pair iii; 31 | typedef vector vsi; 32 | typedef vector vii; 33 | typedef vector vi; 34 | typedef vector vc; 35 | typedef vector vs; 36 | typedef map msvs; 37 | typedef map msi; 38 | typedef map mss; 39 | #define INF 1000000000 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | // freopen("out.out", "w", stdout); 44 | int n, current, total=0; 45 | scanf("%d\n", &n); 46 | map currentMap; 47 | for (int i = 0; i < n; i++) { 48 | scanf("%d", ¤t); 49 | auto iter = currentMap.find(current); 50 | if (iter != currentMap.end() && currentMap[current] != -1){ 51 | total++; 52 | currentMap[current] = -1; 53 | } else { 54 | currentMap[current] = current; 55 | } 56 | } 57 | 58 | printf("%d", total); 59 | return 0; 60 | } -------------------------------------------------------------------------------- /HackerRank/The Maximum Subarray.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | The Maximum Subarray (50 Points) 3 | HackerRank 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | This is the perfect use case for the Kadane's algorithm. The only tricky part is 8 | the sum of Non-contiguous (not necessarily contiguous) subarray when all of them 9 | are negatives, in that case you just print the max sum of the contiguous subarray twice. 10 | 11 | Notes. 12 | The Kadane's algorithm 13 | http://codeforces.com/blog/entry/13713 14 | */ 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | using namespace std; 21 | typedef vector vi; 22 | #define MAX 10000 23 | 24 | int main() { 25 | // freopen("in.in", "r", stdin); 26 | 27 | int cases;scanf("%d",&cases); 28 | while(cases--) { 29 | int n, current_max, max_contiguous_sum, max_sum; 30 | max_sum = 0; 31 | current_max = max_contiguous_sum = (-1 * MAX); 32 | scanf("%d",&n); 33 | for (int a, i = 0; i < n; ++i) { 34 | scanf("%d",&a); 35 | current_max = max(a,current_max + a); 36 | max_contiguous_sum = max(current_max,max_contiguous_sum); 37 | if (a>0){ 38 | max_sum += a; 39 | } 40 | } 41 | if (max_contiguous_sum < 0) 42 | max_sum = max_contiguous_sum; 43 | printf("%d %d\n",max_contiguous_sum, max_sum); 44 | } 45 | return 0; 46 | } 47 | -------------------------------------------------------------------------------- /HackerRank/The Maximum Subarray.rb: -------------------------------------------------------------------------------- 1 | 2 | file = File.exist?('in.in') ? File.new('in.in', 'r') : STDIN 3 | MAX = 10000 4 | 5 | cases = file.gets.chomp.to_i 6 | cases.times do 7 | file.gets.chomp # no need this 8 | numbers = file.gets.chomp 9 | max_sum = 0; 10 | current_max = max_contiguous_sum = (-1 * MAX); 11 | numbers.split(' ').each do |a| 12 | a = a.to_i 13 | current_max = [a,current_max + a].max 14 | max_contiguous_sum = [current_max,max_contiguous_sum].max 15 | max_sum += a if a > 0 16 | end 17 | max_sum = max_contiguous_sum if (max_contiguous_sum < 0) 18 | puts "#{max_contiguous_sum} #{max_sum}" 19 | end -------------------------------------------------------------------------------- /HackerRank/new-year-chaos.rb: -------------------------------------------------------------------------------- 1 | def sort_and_count(a) 2 | n = a.length 3 | return [0, a] if n == 1 4 | x, b = sort_and_count(a[0...n/2]) 5 | y, c = sort_and_count(a[n/2...n]) 6 | z, d = merge_and_count(b, c) 7 | [x+y+z, d] 8 | end 9 | 10 | def merge_and_count(b,c) 11 | d = [] 12 | n = b.length + c.length 13 | z = i = j = k = 0 14 | while k < n do 15 | # If c[j].nil? then all items on the right array are gone 16 | # Ff b[i].nil? then all items on the left array are gone 17 | if c[j].nil? || (b[i] && b[i] < c[j]) 18 | d[k] = b[i] 19 | i += 1 20 | else 21 | d[k] = c[j] 22 | j += 1 23 | z += (b.length - i) 24 | end 25 | k += 1 26 | end 27 | [z, d] 28 | end 29 | 30 | T = gets.strip.to_i 31 | for a0 in (0..T-1) 32 | n = gets.strip.to_i 33 | q = gets.strip 34 | q = q.split(' ').map(&:to_i) 35 | 36 | msg = nil # Check if Too chaotic 37 | q.each_with_index do |_v, i| 38 | if q[i] - i > 3 39 | msg = 'Too chaotic' 40 | break 41 | end 42 | end 43 | if msg 44 | puts msg 45 | next 46 | else 47 | inversions, _a = sort_and_count(q) 48 | puts inversions 49 | end 50 | end -------------------------------------------------------------------------------- /Live Archive/4215 - Feynman.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 4215 - Feynman 3 | ACM-ICPC Live Archive 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | 7 | */ 8 | 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | int n; 15 | while((cin>>n) && n){cout<<(2*n + 1)*n*(n+1)/6< 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | int cases; 15 | int cont=1; 16 | 17 | string message; 18 | string alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 19 | string newAlphabet; 20 | 21 | cin>>cases; 22 | getline(cin,message); 23 | 24 | while(cases){ 25 | getline(cin,message); 26 | getline(cin,newAlphabet); 27 | for(int i=0;i < message.size();i++){ 28 | for(int j=0;j<26;j++){ 29 | if(message[i]==alphabet[j]){ 30 | message[i]=newAlphabet[j]; 31 | break; 32 | } 33 | } 34 | } 35 | cout< 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | using namespace std; 31 | 32 | int main(){ 33 | string s; 34 | getline(cin,s); 35 | getline(cin,s); 36 | while(s != "END"){ 37 | string mostrar = s; 38 | sort(s.begin(),s.end()); 39 | int size = s.size(); 40 | bool valid =true; 41 | for (int i = 1; i < size; ++i) 42 | { 43 | if(s[i-1]!=' ' && s[i]!=' ' && s[i-1]==s[i]){ 44 | valid=false; 45 | break; 46 | } 47 | } 48 | if(valid) 49 | cout< 8 | 9 | using namespace std; 10 | 11 | int main(){ 12 | int grades[6]; 13 | bool fin=false; 14 | while(!fin){ 15 | int max=0,min=11,total=0; 16 | for(int i=0;i<6;i++){ 17 | cin>>grades[i]; 18 | if(grades[i]>max){max=grades[i];} 19 | if(grades[i] 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | int main() { 41 | // freopen("in.in", "r", stdin); 42 | ll n; 43 | ll a; 44 | ll b; 45 | scanf("%lld",&n); 46 | a = pow(4,n); 47 | b = pow(2,n); 48 | printf("%lld\n",a*b); 49 | return 0; 50 | } -------------------------------------------------------------------------------- /RPC/14th/formula.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | double side(int x1, int y1, int x2, int y2){ 41 | return sqrt(pow((x2-x1),2)+pow((y2-y1),2)); 42 | } 43 | 44 | int main(){ 45 | // freopen("in.in", "r", stdin); 46 | int x1,y1,x2,y2,x3,y3; 47 | double r,my_r,A,a,b,c, result; 48 | scanf("%d %d", &x1, &y1); 49 | scanf("%d %d", &x2, &y2); 50 | scanf("%d %d", &x3, &y3); 51 | scanf("%lf", &r); 52 | 53 | A = 0.5*abs((x1*y2)+(x2*y3)+(x3*y1)-(x2*y1)-(x3*y2)-(x1*y3)); 54 | a = side(x1,y1,x2,y2); 55 | b = side(x1,y1,x3,y3); 56 | c = side(x2,y2,x3,y3); 57 | 58 | my_r = A / ((a+b+c)/2.0); 59 | 60 | if(my_r == r){ 61 | printf("0\n"); 62 | }else{ 63 | result = (my_r * 100.0 / r); 64 | printf("%lf\n",((my_r * 100.0 / r) - 100)); 65 | } 66 | return 0; 67 | } -------------------------------------------------------------------------------- /RPC/14th/in.in: -------------------------------------------------------------------------------- 1 | 10 -------------------------------------------------------------------------------- /RPC/15th/excellence.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vll; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | int main() { 41 | // freopen("in.in", "r", stdin); 42 | ll n; scanf("%lld",&n); 43 | vll nums(n); 44 | for (int i = 0; i < n; ++i) 45 | scanf("%lld",&nums[i]); 46 | sort (nums.begin(), nums.end()); 47 | ll min_sum = INF; 48 | for (int i = 0, j = n-1; i < j; ++i, j--) 49 | min_sum = min(min_sum, nums[i] + nums[j]); 50 | printf("%lld\n",min_sum); 51 | return 0; 52 | } -------------------------------------------------------------------------------- /RPC/15th/in.in: -------------------------------------------------------------------------------- 1 | 5 2 | mom: upper upper lower middle class 3 | dad: middle middle lower middle class 4 | queenelizabeth: upper upper class 5 | chair: lower lower class 6 | unclebob: middle lower middle class -------------------------------------------------------------------------------- /RPC/15th/magic.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class magic { 4 | public static void main(String[] args) { 5 | Scanner in = new Scanner(System.in); 6 | int result = 0; 7 | int ops = Integer.parseInt(in.nextLine()); 8 | String[] operations = new String[ops]; 9 | int[] values = new int[ops]; 10 | for (int i = 0; i < ops; i++) { 11 | String[] line = in.nextLine().split(" "); 12 | operations[i] = line[0]; 13 | values[i] = Integer.parseInt(line[1]); 14 | } 15 | float k; 16 | int v; 17 | for (int i = 1; i <= 100; i++) { 18 | k = i; 19 | for (int j = 0; j < ops; j++) { 20 | v = values[j]; 21 | switch (operations[j]) { 22 | case "ADD": 23 | k = k + v; 24 | break; 25 | case "SUBTRACT": 26 | k = k - v; 27 | break; 28 | case "MULTIPLY": 29 | k = k * v; 30 | break; 31 | case "DIVIDE": 32 | k = k / v; 33 | break; 34 | } 35 | if (k < 0 || (k != (int)k)) { 36 | result++; 37 | break; 38 | } 39 | } 40 | } 41 | 42 | System.out.println(result); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /RPC/15th/triangle.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | int main() { 41 | // freopen("in.in", "r", stdin); 42 | vi tring1(3), tring2(3); 43 | scanf("%d %d %d",&tring1[0], &tring1[1], &tring1[2]); 44 | scanf("%d %d %d",&tring2[0], &tring2[1], &tring2[2]); 45 | sort(tring1.begin(), tring1.end()); 46 | sort(tring2.begin(), tring2.end()); 47 | bool result = ((tring1[2] * tring1[2]) == (tring1[0] * tring1[0]) + (tring1[1] * tring1[1])); 48 | if(result && tring1[0] == tring2[0] && tring1[1] == tring2[1] && tring1[2] == tring2[2]){ 49 | printf("YES\n"); 50 | }else{ 51 | printf("NO\n"); 52 | } 53 | return 0; 54 | } -------------------------------------------------------------------------------- /RPC/15th/triangle.java: -------------------------------------------------------------------------------- 1 | import java.util.Arrays; 2 | import java.util.Scanner; 3 | 4 | public class triangle { 5 | public static void main(String[] args) { 6 | Scanner in = new Scanner(System.in); 7 | String[] t1 = in.nextLine().split(" "); 8 | String[] t2 = in.nextLine().split(" "); 9 | Arrays.sort(t1); 10 | Arrays.sort(t2); 11 | if(!Arrays.equals(t1, t2)) { 12 | System.out.println("NO"); 13 | return; 14 | } 15 | int a = Integer.parseInt(t2[0]); 16 | int b = Integer.parseInt(t2[1]); 17 | int c = Integer.parseInt(t2[2]); 18 | 19 | boolean result = (c * c == (a * a) + (b * b)); 20 | System.out.println(result ? "YES" : "NO"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SPOJ/1 - Life, the Universe, and Everything.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 1 - Life, the Universe, and Everything 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | 9 | using namespace std; 10 | 11 | 12 | int main(){ 13 | for(int n;scanf("%d",&n)&&n!=42;printf("%d\n",n)); 14 | return 0; 15 | } -------------------------------------------------------------------------------- /SPOJ/10399 - Conga line.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10399 - Conga line 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | This problem could have multiple approaches, the first that I took was, stay in the middle of the array, 8 | then see where are more people, left side or right side, and move all the people that is in the other side, 9 | and repeat it until all positions are contiguous. With this approach I got TLE, obviously cause it's 10 | O(n^2). So here's a better approach "Take the ith person from the left and the ith person from the 11 | right. The steps they must walk is their current distance minus their desired distance.", this one is 12 | O(n). 13 | 14 | Notes. 15 | TopCoder forum where I found the second approach. 16 | http://apps.topcoder.com/forums/?module=Thread&threadID=739383&mc=3&view=flat 17 | */ 18 | #include 19 | #include 20 | #include 21 | #include 22 | using namespace std; 23 | 24 | int main(){ 25 | long long n; 26 | while(scanf("%lld",&n) && n!=0){ 27 | long long a,b,total=0; 28 | if(n < 3){ 29 | if(n == 1){scanf("%lld",&a);printf("%lld\n",total);} 30 | else{scanf("%lld %lld",&a,&b);printf("%lld\n",(b-a-1));} 31 | }else{ 32 | vector piso; 33 | long long totaIzq,totalDer,mitad,cambio; 34 | //Read the data 35 | for (long long i = n,num; i--; scanf("%lld",&num),piso.push_back(num)); 36 | 37 | for (int i = 0; i < n/2; ++i) 38 | { 39 | //Current distance minus their desired distance. 40 | total += piso[n-1-i]-piso[i]-(n-2*i-1); 41 | } 42 | printf("%lld\n",total); 43 | } 44 | 45 | 46 | } 47 | return 0; 48 | } 49 | 50 | -------------------------------------------------------------------------------- /SPOJ/11031 - Bank Robbers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 11031 - Bank Robbers 3 | SPOJ 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | int main(){ 29 | int n,m; 30 | 31 | while(scanf("%d %d",&n,&m)!=EOF){ 32 | printf("%d\n",n+m); 33 | } 34 | return 0; 35 | } -------------------------------------------------------------------------------- /SPOJ/3410 - Feynman.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3410 - Feynman 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Simply the Sum of squares. 8 | 1 + 2² + 3² + ... + n²= ∑ n² from i=1 - n = n(n + 1)(2n + 1) / 6 9 | 10 | Notes. 11 | Sum of squares. 12 | http://www.trans4mind.com/personal_development/mathematics/series/sumNaturalSquares.htm 13 | */ 14 | #include 15 | using namespace std; 16 | 17 | int main(){ 18 | for(int n;scanf("%d",&n)&&n;printf("%d\n",((2*n+1)*n*(n+1))/6)); 19 | return 0; 20 | } -------------------------------------------------------------------------------- /SPOJ/400 - To and Fro.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 400 - To and Fro 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | First just saved the string into the matriz in the 'encode' order, is the same as say that the even rows 8 | will be reversed. Then seeing the way that the matrix of characters it's formed and knowing that the 9 | number of rows is s.size()/n print it by columns. 10 | */ 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | using namespace std; 32 | 33 | int main(){ 34 | int n; 35 | while(scanf("%d",&n) && n!=0){ 36 | 37 | vector< vector > v; 38 | string s; 39 | cin>>s; 40 | int rows= s.size()/n; 41 | bool direction = true; 42 | for (int i = 0, k=0; i < rows; ++i, direction = !direction) 43 | { 44 | vector r; 45 | for (int j = 0; j < n; ++j,++k) 46 | { 47 | r.push_back(s[k]); 48 | } 49 | if(direction) 50 | reverse(r.begin(),r.end()); 51 | 52 | v.push_back(r); 53 | } 54 | for (int i = n-1; i >=0 ; --i) 55 | { 56 | for (int j = 0; j < rows; ++j) 57 | { 58 | 59 | printf("%c",v[j][i]); 60 | } 61 | } 62 | printf("\n"); 63 | } 64 | return 0; 65 | } 66 | -------------------------------------------------------------------------------- /SPOJ/42 - Adding Reversed Numbers.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 42 - Adding Reversed Numbers 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Reverse both numbers, sum them and print the reverse result. 8 | */ 9 | #include 10 | #include 11 | #include 12 | using namespace std; 13 | 14 | unsigned reverse(unsigned num){ 15 | unsigned reversed = 0; 16 | while(num){ 17 | reversed = reversed*10+num%10; 18 | num = num/10; 19 | } 20 | return reversed; 21 | } 22 | 23 | int main(){ 24 | int n; 25 | scanf("%d",&n); 26 | while(n--){ 27 | unsigned num1,num2; 28 | scanf("%u %u",&num1,&num2); 29 | printf("%u\n",reverse(reverse(num1)+reverse(num2))); 30 | } 31 | return 0; 32 | } -------------------------------------------------------------------------------- /SPOJ/6256 - Inversion Count.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 6256 - Inversion Count 3 | SPOJ 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Make a new array of size 'MaxElement' of the given array, then, back to front get the sum of each until inv[i]-1 (no including i), 8 | and add 1 to postion inv[i]. Then print the sum. And that's the number of inversions. 9 | Fenwick tree. 10 | 11 | Notes. 12 | http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees 13 | */ 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | using namespace std; 35 | 36 | int get(vector *tree,int i){ 37 | int sum = 0; 38 | while(i>0){ 39 | sum +=tree->at(i); 40 | i-=i&-i; 41 | } 42 | return sum; 43 | } 44 | void add(vector *tree, int idx ,int val){ 45 | while (idx < tree->size()){ 46 | tree->at(idx) += val; 47 | idx += (idx & -idx); 48 | } 49 | } 50 | 51 | int main(){ 52 | int cases;scanf("%d",&cases); 53 | while(cases--){ 54 | long long n;scanf("%lld",&n); 55 | vector inv; 56 | long long total=0; 57 | long long size=0; 58 | for (long long i = n,num; i--; scanf("%lld",&num),size=max(size,num),inv.push_back(num)); 59 | vector tree (size+1,0); 60 | for (int i = inv.size()-1; size > 0 && i >= 0 ; --i) 61 | { 62 | total += get(&tree,inv[i]-1); 63 | add(&tree,inv[i],1); 64 | } 65 | printf("%lld\n",total); 66 | } 67 | return 0; 68 | } 69 | -------------------------------------------------------------------------------- /SPOJ/902 - Hangover.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 902 - Hangover 3 | Sphere Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | 10 | int main (){ 11 | double num,temp; 12 | while(scanf("%lf",&num) && num ){ 13 | temp=0; 14 | int resp=1; 15 | while(temp<=num){ 16 | temp+=(double) 1/(resp+1); 17 | resp++; 18 | } 19 | printf("%d card(s)\n",resp-1); 20 | } 21 | 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /SPOJ/Longest Common Substring.cpp: -------------------------------------------------------------------------------- 1 | using namespace std; 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | 24 | int LCS(string X,string Y) 25 | { 26 | if (Y.length() > X.length()) 27 | swap(X,Y); 28 | int m = X.length(),n=Y.length(); 29 | vector< vector > c(2, vector(n+1,0)); 30 | int i,j; 31 | for (i=1;i<=m;i++) 32 | { 33 | for (j=1;j<=n;j++) 34 | { 35 | if (X[i-1]==Y[j-1]) 36 | c[1][j]=c[0][j-1]+1; 37 | else 38 | c[1][j]=max(c[1][j-1],c[0][j]); 39 | } 40 | for (j=1;j<=n;j++) 41 | c[0][j]=c[1][j]; 42 | } 43 | return (c[1][n]); 44 | } 45 | 46 | 47 | int main(){ 48 | string s1,s2; 49 | cin>>s1; 50 | cin>>s2; 51 | 52 | cout< 2 | 3 | const int LIMIT = 100001; 4 | 5 | int sieve[LIMIT + 1]; // Inicializar con 0’s. 6 | int primes[LIMIT + 1]; 7 | int primeCount = 1; 8 | 9 | /******** Criba de Eratóstenes ********/ 10 | void generatedPrimes(){ 11 | for (int i = 2; i <= LIMIT; ++i) { 12 | if (!sieve[i]) { 13 | primes[primeCount] = i; 14 | sieve[i] = primeCount; 15 | primeCount++; 16 | } 17 | for (int j = 1; j <= sieve[i] && i * primes[j] <= LIMIT; j++){ 18 | sieve[ i * primes[j] ] = j; 19 | } 20 | } 21 | } 22 | 23 | 24 | 25 | int main(){ 26 | generatedPrimes(); 27 | int t; 28 | scanf("%d",&t); 29 | while(t--){ 30 | int m,n; 31 | scanf("%d %d",&m,&n); 32 | if (m <= 2 && 2 <= n){ 33 | printf("2\n"); 34 | } 35 | // i es primo si primes[sieve[i]] == i, y compuesto si no. 36 | for(int i=m;i<=n;i+=2){ 37 | if(primes[sieve[i]] == i) 38 | printf("%d\n",i); 39 | } 40 | } 41 | return 0; 42 | } -------------------------------------------------------------------------------- /SPOJ/julka.java: -------------------------------------------------------------------------------- 1 | /* 2 | 54 - Julka 3 | SPOJ 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Simply shows the advantage of Java over C++ = BigInteger. :P 8 | */ 9 | import java.io.BufferedReader; 10 | import java.io.File; 11 | import java.io.FileNotFoundException; 12 | import java.io.IOException; 13 | import java.io.InputStreamReader; 14 | import java.math.BigInteger; 15 | import java.util.Arrays; 16 | import java.util.Scanner; 17 | import java.util.Vector; 18 | import java.math.BigInteger; 19 | 20 | public class julka { 21 | 22 | /** 23 | * @param args 24 | * @throws FileNotFoundException 25 | */ 26 | 27 | public static void main(String[] args) throws NumberFormatException, IOException { 28 | int cases = 10; 29 | BigInteger dos = new BigInteger("2"); 30 | Scanner sc = new Scanner(System.in); 31 | while(cases--!=0){ 32 | BigInteger a= sc.nextBigInteger(); 33 | BigInteger b= sc.nextBigInteger(); 34 | BigInteger c =a.add(b); 35 | c = c.divide(dos); 36 | BigInteger n =a.subtract(b); 37 | n=n.divide(dos); 38 | System.out.println(c); 39 | System.out.println(n); 40 | } 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /TJU/11000 - Bee.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 11000 - Bee 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | 7 | */ 8 | 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | 16 | int n; 17 | 18 | cin>>n; 19 | 20 | while(n!=-1){ 21 | 22 | vector fib; 23 | fib.push_back(0); 24 | fib.push_back(1); 25 | 26 | for (int i = 2; i < n+4; i++){ 27 | fib.push_back(fib[i-1] + fib[i-2]); 28 | } 29 | cout<>n; 31 | } 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /TJU/1196 - Web Navigation.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 1196 - Web Navigation 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | 7 | */ 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | 14 | using namespace std; 15 | 16 | int main(){ 17 | 18 | stack pageForward; 19 | stack pageBack; 20 | 21 | string line; 22 | string url; 23 | string current("http://www.acm.org/"); 24 | 25 | getline(cin,line); 26 | 27 | while(line!="QUIT"){ 28 | 29 | if(line=="FORWARD"){ 30 | if(!pageForward.empty()){ 31 | pageBack.push(current); 32 | current=pageForward.top(); 33 | pageForward.pop(); 34 | cout< 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | string s,t; 16 | while(cin>>s>>t){ 17 | int tamS=s.size(); 18 | int tamT=t.size(); 19 | int i=0,j=0; 20 | while(j 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | int n,d,num; 14 | cin>>d; 15 | while(d--){ 16 | cin>>n; 17 | num = 0; 18 | if ( n%2 != 0 ){cout< 10 | 11 | using namespace std; 12 | 13 | struct player{ 14 | int wins; 15 | int loses; 16 | }; 17 | 18 | int main(){ 19 | player betty; 20 | player cindy; 21 | player zelda; 22 | player anna; 23 | 24 | int totalGames=0; 25 | int totalWins=0; 26 | int totalLoses=0; 27 | 28 | 29 | while(cin>>betty.wins>>betty.loses>>cindy.wins>>cindy.loses>>zelda.wins>>zelda.loses){ 30 | 31 | if (!betty.wins && !betty.loses && !cindy.wins && !cindy.loses && !zelda.wins && !zelda.loses) 32 | break; 33 | 34 | 35 | totalWins=betty.wins+cindy.wins+zelda.wins; 36 | totalLoses=betty.loses+cindy.loses+zelda.loses; 37 | 38 | totalGames=(betty.wins+betty.loses)*4; 39 | 40 | anna.wins = (totalGames/2)-totalWins; 41 | anna.loses = (totalGames/2)-totalLoses; 42 | 43 | cout<<"Anna's won-loss record is "< 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | using namespace std; 16 | 17 | int digits (int n){ 18 | stringstream ss; 19 | ss << n; 20 | string s = ss.str(); 21 | return s.length(); 22 | } 23 | 24 | int main(){ 25 | 26 | printf("PERFECTION OUTPUT\n"); 27 | int n; 28 | int num; 29 | while(scanf("%d", &n) && n){ 30 | vector v; 31 | int digit = digits(n); 32 | for (int i = 1; i <= n/2; i++){ 33 | if(n%i == 0){ 34 | v.push_back(i); 35 | } 36 | } 37 | int sum = accumulate(v.begin(), v.end(), 0); 38 | string s; 39 | for (int i = 0; i < 5 - digit; i++){ 40 | s += " "; 41 | } 42 | cout < sum){ 46 | printf("%d DEFICIENT\n", n); 47 | } else { 48 | printf("%d PERFECT\n", n); 49 | } 50 | 51 | } 52 | printf("END OF OUTPUT\n"); 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /TJU/1630 - String Matching.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 1630 - String Matching 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | 7 | */ 8 | #include 9 | #include 10 | using namespace std; 11 | 12 | int GCD(int a,int b) { 13 | while (b > 0) { 14 | a = a % b; 15 | a ^= b; 16 | b ^= a; 17 | a ^= b; 18 | } 19 | return a; 20 | } 21 | 22 | int main(){ 23 | string a,b; 24 | while(cin>>a && a !="-1"){ 25 | cin>>b; 26 | int tamA = a.size(); 27 | int tamB = b.size(); 28 | int aprox=0,temp,coci,deno,tempApr=0; 29 | for(int i=0; iaprox){aprox=tempApr;} 40 | tempApr=0; 41 | 42 | } 43 | } 44 | temp = GCD(aprox*2,tamA+tamB); 45 | coci= ((aprox*2) / temp); 46 | deno= ((tamA+tamB) / temp); 47 | if(aprox==0){cout<<"appx("< 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | int cases; 16 | 17 | scanf("%d",&cases); 18 | string line; 19 | getline(cin,line); 20 | 21 | while(cases--){ 22 | getline(cin,line); 23 | int tam = line.size(); 24 | for(int i=tam-1;i>=0;i--){ 25 | cout< 9 | #include 10 | #include 11 | 12 | 13 | using namespace std; 14 | 15 | int main(){ 16 | int num; 17 | cin>>num; 18 | 19 | while(num!=-1){ 20 | int cont =0; 21 | vector doubles; 22 | doubles.push_back(num); 23 | cin>>num; 24 | 25 | while(num){ 26 | doubles.push_back(num); 27 | cin>>num; 28 | } 29 | 30 | int tamV=doubles.size(); 31 | 32 | for(int i=0;i0)cont++; 38 | } 39 | } 40 | cout<>num; 42 | } 43 | 44 | return 0; 45 | } 46 | -------------------------------------------------------------------------------- /TJU/1935 - Symmetric Order.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 1935 - Symmetric Order 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Read the input, if i is even, then save it into 'ses' array otherwise print it, then print 'ses' array. 8 | */ 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | 31 | int main(){ 32 | int n; 33 | int set=1; 34 | while(scanf("%d",&n) && n!=0){ 35 | printf("SET %d\n",set); 36 | string s; 37 | vector ses; 38 | for (int i = 1; i <= n; ++i){ 39 | cin>>s; 40 | if(i%2==0) 41 | ses.push_back(s); 42 | else 43 | cout<= 0; --i) 46 | { 47 | cout< 10 | #include 11 | 12 | using namespace std; 13 | 14 | 15 | int main (){ 16 | 17 | string temp; 18 | int num1; 19 | int num[10]; 20 | 21 | getline (cin,temp); 22 | 23 | int tam=temp.size(); 24 | 25 | for(int i = 0; i < tam; i++){ 26 | num[i]=int(temp[i]-48); 27 | } 28 | while(getline (cin,temp)) { 29 | 30 | for(int i = 0; i < tam; i++){ 31 | if(temp[i]!='0'){ 32 | 33 | num1 = int(temp[i]-48); 34 | num1+=num[i]; 35 | 36 | if((10-num1)>0){ num[i]=num1;} 37 | else{ 38 | num1-=10; 39 | num[i]=num1; 40 | } 41 | } 42 | } 43 | } 44 | for(int i = 0; i < tam; i++){ 45 | cout< 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | 16 | int cases; 17 | 18 | cin>>cases; 19 | //scanf("&d",&cases); 20 | 21 | while(cases--){ 22 | 23 | int n; 24 | 25 | cin>>n; 26 | //scanf("%d",&n); 27 | 28 | vector fib; 29 | fib.push_back(0); 30 | fib.push_back(1); 31 | 32 | for (int i = 2; i < n+3; i++){ 33 | fib.push_back(fib[i-1] + fib[i-2]); 34 | } 35 | cout< 9 | #include 10 | 11 | using namespace std; 12 | 13 | //Prime function with sqrt. 14 | int PN(int num){ 15 | int div, prime; 16 | prime=1; 17 | div=2; 18 | if(num!=1){ 19 | while (div<=sqrt(num) && prime==1){ 20 | if (num % div==0) 21 | prime=0; 22 | else 23 | prime=1; 24 | div++; 25 | } 26 | return(prime); 27 | }else{ 28 | return 0; 29 | } 30 | } 31 | 32 | int main(){ 33 | 34 | long long int a,b,n,j,num,primes; 35 | 36 | while(cin>>a>>b>>n && a && b && n){ 37 | 38 | primes=0; 39 | //sequence 40 | for(int i=0;n>0;i++){ 41 | num=a+b*i; 42 | //prime or not prime 43 | if(PN(num)==1){n--;} 44 | } 45 | cout< 9 | 10 | using namespace std; 11 | 12 | int *array1; 13 | int *array2; 14 | 15 | int main(){ 16 | int cases; 17 | int n; 18 | int r; 19 | 20 | while(cin>>n>>r && n && r){ 21 | 22 | int cards = n-1; 23 | 24 | array1 = new int[n]; 25 | array2 = new int[n]; 26 | 27 | for(int i=0;i>p>>c; 36 | int j=0; 37 | 38 | for(int i=p-1;i<(p+c)-1;i++,j++){ 39 | array2[j]=array1[i]; 40 | } 41 | for(int i=0;i<(p-1);i++){ 42 | array2[j]=array1[i]; 43 | j++; 44 | } 45 | for(int i=j;i 9 | 10 | using namespace std; 11 | 12 | int cont=0; 13 | char matriz [20][20]; 14 | int fila=0; 15 | int columna=0; 16 | 17 | void confirmar(int x, int y){ 18 | /*//Imprimir tablero 19 | for(int i=0;i=0 && matriz[x-1][y]=='.'){matriz[x-1][y]='x';cont++;confirmar(x-1,y);} 27 | if(y+1=0 && matriz[x][y-1]=='.'){matriz[x][y-1]='x';cont++;confirmar(x,y-1);} 29 | } 30 | 31 | int main(){ 32 | scanf("%d %d", &columna,&fila); 33 | while(fila!=0){ 34 | 35 | cont=0; 36 | int x; 37 | int y; 38 | 39 | for(int i=0;i>matriz[i][j]; 42 | if(matriz[i][j]=='@'){ 43 | x=i, 44 | y=j; 45 | } 46 | } 47 | } 48 | confirmar(x,y); 49 | printf("%d\n",cont+1); 50 | scanf("%d %d", &columna,&fila); 51 | } 52 | return 0; 53 | } 54 | 55 | 56 | -------------------------------------------------------------------------------- /TJU/2782 - I am Lord Voldemort.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 2782. I am Lord Voldemort 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | 7 | */ 8 | #include 9 | #include 10 | 11 | 12 | using namespace std; 13 | 14 | int main(int argc, char *argv[]){ 15 | int cases; 16 | int caso=1; 17 | 18 | scanf("%d",&cases); 19 | 20 | while(cases--){ 21 | string word1; 22 | string word2; 23 | int sum1=0; 24 | int sum2=0; 25 | char c; 26 | 27 | cin>>word1 >>word2; 28 | 29 | if(word1.size()!=word2.size()){ 30 | cout<<"No"< 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | unsigned long int c,n,cann,cont=0; 16 | vector times; 17 | cin>>c>>n; 18 | for(int i=0;i>cann; 20 | int sum=cann; 21 | while(sum<=n){ 22 | int it; 23 | it = (int) count (times.begin(), times.end(), sum); 24 | if(it==0){ 25 | times.push_back(sum); 26 | cont++; 27 | } 28 | sum+=cann; 29 | } 30 | } 31 | cout< 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | int cases; 14 | string word; 15 | string vowels = "aeiou"; 16 | scanf("%d",&cases); 17 | while(cases--){ 18 | cin>>word; 19 | size_t found; 20 | found=vowels.find_first_of(word[0]); 21 | if(found!=string::npos){ 22 | cout< 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | int r; 14 | double pi = 3.14159265358979323846; 15 | 16 | cin>>r; 17 | 18 | double areaE; 19 | double areaT; 20 | 21 | areaE = pi*r*r; 22 | areaT = 2*r*r; 23 | 24 | cout.precision(6); 25 | cout< 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | 27 | using namespace std; 28 | 29 | int main(){ 30 | int n,num,cas=1; 31 | string word; 32 | scanf("%d",&n); 33 | while(n--){ 34 | cin>>num>>word; 35 | word.erase(num-1,1); 36 | cout< 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | 16 | int n,cas=1; 17 | double num; 18 | string tp; 19 | scanf("%d",&n); 20 | while(n--){ 21 | cin>>num>>tp; 22 | if(tp=="kg"){cout< 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | 31 | int main(){ 32 | 33 | map rules; 34 | rules['P']='R'; 35 | rules['R']='S'; 36 | rules['S']='P'; 37 | 38 | int cases; 39 | scanf("%d",&cases); 40 | while(cases--){ 41 | int numP,p1 = 0,p2 =0; 42 | string temp; 43 | char p1R,p2R; 44 | scanf("%d",&numP); 45 | while(numP--){ 46 | getline(cin,temp); 47 | scanf("%c %c",&p1R,&p2R); 48 | if(!(p1R == p2R)){ 49 | (rules.find(p1R)->second == p2R)?p1++:p2++; 50 | } 51 | } 52 | if(p1 == p2) 53 | printf("TIE\n"); 54 | else 55 | (p1>p2)?printf("Player 1\n"):printf("Player 2\n"); 56 | } 57 | return 0; 58 | } 59 | -------------------------------------------------------------------------------- /TJU/3105 - A Way To Find Primes.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3105 - A Way To Find Primes 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Generate the sieve of eratosthenes until the limit (100000) and then just print the k-th prime. 8 | In this case the first prime is in the position primes[1]. 9 | 10 | Notes. 11 | Here is a nice gif showing the process of the algorithm. 12 | http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes 13 | */ 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | using namespace std; 35 | 36 | const int LIMIT = 100000; 37 | int sieve[LIMIT + 1]; // Inicializar con 0’s. 38 | int primes[LIMIT + 1]; 39 | int primeCount = 1; 40 | void criba(){ 41 | for (int i = 2; i <= LIMIT; ++i) { 42 | if (!sieve[i]) { 43 | primes[primeCount] = i; 44 | sieve[i] = primeCount; 45 | primeCount++; 46 | } 47 | for (int j = 1; j <= sieve[i] && i * primes[j] <= LIMIT; j++){ 48 | sieve[ i * primes[j] ] = j; 49 | } 50 | } 51 | } 52 | 53 | int main(){ 54 | criba(); 55 | int cases;scanf("%d",&cases); 56 | while(cases--){ 57 | int k; 58 | scanf("%d",&k); 59 | printf("%d\n",primes[k]); 60 | 61 | } 62 | return 0; 63 | } -------------------------------------------------------------------------------- /TJU/3108 - Common item.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3108 - Common item 3 | TJU Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution: 7 | Unique, sort, print. 8 | */ 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | 31 | int main(){ 32 | string temp; 33 | int cases;scanf("%d",&cases); 34 | while(cases--){ 35 | vector v1,v2,result; 36 | 37 | int m1,m2,num; 38 | scanf("%d %d",&m1,&m2); 39 | 40 | while(m1--){scanf("%d",&num);v1.push_back(num);} 41 | while(m2--){scanf("%d",&num);v2.push_back(num);} 42 | getline(cin,temp); 43 | 44 | for(int i=0;i 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | //Greatest Common Divisor (GCD) 24 | long GCD(long a,long b) { 25 | while (b > 0) { 26 | a = a % b; 27 | a^=b; b^=a; a^=b; 28 | } 29 | return a; 30 | } 31 | //Lowest Common Multiple (LCM) 32 | long LCM (long a,long b){ 33 | return (a * b) / GCD (a,b); 34 | } 35 | //Greatest Common Factor(GCF). -> a>b 36 | long GCF(long a, long b){ 37 | if(a%b==0){ 38 | return b; 39 | } 40 | else{ 41 | return (a-b 8 | #include 9 | //a*a+b*b=c*c 10 | int main(){ 11 | 12 | int cases=1; 13 | double a,b,c; 14 | 15 | while(scanf("%lf%lf%lf",&a,&b,&c) && a && b && c){ 16 | if(a==-1){ 17 | 18 | if((c-b)<0){ 19 | printf("Triangle #%d\n",cases); 20 | cases++; 21 | printf("Impossible.\n\n"); 22 | }else{ 23 | a=sqrt((c*c)-(b*b)); 24 | printf("Triangle #%d\n",cases); 25 | printf("a = %.3lf\n\n",a); 26 | cases++; 27 | } 28 | } 29 | else if(b==-1){ 30 | 31 | if((c-a)<0){ 32 | printf("Triangle #%d\n",cases); 33 | cases++; 34 | printf("Impossible.\n\n"); 35 | }else{ 36 | b=sqrt((c*c)-(a*a)); 37 | printf("Triangle #%d\n",cases); 38 | printf("b = %.3lf\n\n",b); 39 | cases++; 40 | } 41 | 42 | }else{ 43 | c=sqrt((b*b)+(a*a)); 44 | printf("Triangle #%d\n",cases); 45 | printf("c = %.3lf\n\n",c); 46 | cases++; 47 | } 48 | } 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /TopCoder/Configure/CodeProcessor.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/TopCoder/Configure/CodeProcessor.jar -------------------------------------------------------------------------------- /TopCoder/Configure/FileEdit.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/TopCoder/Configure/FileEdit.jar -------------------------------------------------------------------------------- /TopCoder/Configure/PopsPack.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/TopCoder/Configure/PopsPack.jar -------------------------------------------------------------------------------- /TopCoder/Configure/TZTester.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/TopCoder/Configure/TZTester.jar -------------------------------------------------------------------------------- /TopCoder/SRM 537 DIV 2/KingXNewBaby.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SRM 537 - Div 2 Easy - KingXNewBaby 3 | TopCoder 4 | Esteban Arango Medina 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | using namespace std; 14 | 15 | class KingXNewBaby { 16 | public: 17 | string isValid(string name) { 18 | string vowels = "aeiou"; 19 | if(name.size() != 8) 20 | return "NO"; 21 | else{ 22 | sort(name.begin(),name.end()); 23 | int numVowels = 0; 24 | for (int i = 0; i < vowels.size(); ++i) 25 | { 26 | for (int j = 0; j < name.size(); ++j) 27 | { 28 | if(vowels[i]==name[j]) 29 | numVowels++; 30 | } 31 | } 32 | if(numVowels != 2) 33 | return "NO"; 34 | else 35 | for (int i = 0; i < name.size(); ++i) 36 | { 37 | if (vowels.find(name[i])!=string::npos and name[i] == name[i+1]){ 38 | return "YES"; 39 | } 40 | } 41 | return "NO"; 42 | } 43 | } 44 | }; 45 | -------------------------------------------------------------------------------- /TopCoder/SRM 537 DIV 2/PrinceXToastbook.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | SRM 537 - Div 2 Hard - PrinceXToastbook 3 | TopCoder 4 | Esteban Arango Medina 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | using namespace std; 14 | 15 | class PrinceXToastbook { 16 | public: 17 | double eat(vector prerequisite) { 18 | int size = prerequisite.size(), numPer=0,sumaTotal=0; 19 | vector possible; //Vector with all the possible choices. 20 | for (int i = 0; i < size; ++i){possible.push_back(i);} //Initialize it. 21 | do { 22 | numPer++; 23 | vector eaten; 24 | for (int i = 0; i < size; ++i) 25 | { 26 | if(prerequisite[possible[i]] == -1) //Check if it's -1 push it. 27 | eaten.push_back(possible[i]); 28 | else if(find(eaten.begin(), eaten.end(), prerequisite[possible[i]])!=eaten.end()) //Check if I've already eaten the book, if so push it too. 29 | eaten.push_back(possible[i]); 30 | } 31 | sumaTotal += eaten.size(); //The number of books gained is equals to the size of the vector. 32 | } while ( next_permutation (possible.begin(),possible.end()) ); 33 | double result = (float)sumaTotal/(float)numPer; 34 | return result; 35 | } 36 | }; 37 | -------------------------------------------------------------------------------- /TopCoder/SRM 702 DIV 2/TestTaking.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Esteban Arango Medina 3 | */ 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | using namespace std; 40 | 41 | class TestTaking { 42 | public: 43 | int findMax(int questions, int guessed, int actual) { 44 | return min(questions - guessed, questions - actual) + min(actual, guessed); 45 | // if(guessed == actual) 46 | // return questions; 47 | // else{ 48 | 49 | // return abs(abs(actual-guessed)-questions); 50 | // } 51 | } 52 | }; 53 | 54 | int main(){ 55 | TestTaking test_taking; 56 | cout< 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | struct person 29 | { 30 | int inicial,recibido; 31 | }; 32 | 33 | int main(){ 34 | freopen("gift1.in", "r", stdin); 35 | freopen("gift1.out", "w", stdout); 36 | int n,ini,par; 37 | string name,parName; 38 | mappeople; 39 | vector order; 40 | scanf("%d",&n); 41 | for(int i = 0;i>name; 43 | person p = {0,0}; 44 | people[name]=p; 45 | order.push_back(name); 46 | } 47 | int count = n; 48 | while(count--){ 49 | cin>>name; 50 | scanf("%d %d",&ini,&par); 51 | int dar=0; 52 | if(ini!=0 && par != 0) 53 | dar = ini/par; 54 | people[name].recibido += (ini-(dar*par)); 55 | people[name].inicial = ini; 56 | for (int i = 0; i < par; ++i) 57 | { 58 | cin>>parName; 59 | people[parName].recibido+=dar; 60 | } 61 | } 62 | for (int i = 0; i < n; ++i) 63 | { 64 | string name = order[i]; 65 | int total = people[name].recibido-people[name].inicial; 66 | cout< 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | int main(){ 29 | freopen("ride.in", "r", stdin); 30 | freopen("ride.out", "w", stdout); 31 | string a, b; 32 | cin >> a >> b; 33 | int sizeA=a.length(),sizeB=b.length(); 34 | long sumA=1,sumB=1; 35 | for (int i = 0; i < sizeA; ++i){sumA *= (a[i]-'A')+1;} 36 | for (int i = 0; i < sizeB; ++i){sumB *= (b[i]-'A')+1;} 37 | ((sumA%47) == (sumB%47))?printf("GO\n"):printf("STAY\n"); 38 | return 0; 39 | } -------------------------------------------------------------------------------- /USACO/test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ID: marrano1 3 | PROG: test 4 | LANG: C++ 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | int main(){ 29 | freopen("test.in", "r", stdin); 30 | freopen("test.out", "w", stdout); 31 | int a, b; 32 | cin >> a >> b; 33 | cout << a+b << endl; 34 | return 0; 35 | } -------------------------------------------------------------------------------- /UVa/10004 - Bicoloring.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10004 - Bicoloring 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | bool resp; 14 | 15 | void dfs(int start, int color, int * colors, vector * graph){ 16 | if(colors[start] != 0){ 17 | if(!(color == colors[start])){resp=false;} 18 | }else{ 19 | colors[start]=color; 20 | for(int i=0;i graph[nods]; 34 | int colors[nods]; 35 | memset(colors,0,sizeof colors); 36 | for(int i=0;i 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | #define MAX 30005 30 | 31 | bool seq[MAX]; 32 | 33 | int main(){ 34 | int n; 35 | while (scanf("%d",&n) != EOF){ 36 | int pre,currentNum,total; 37 | scanf("%d",¤tNum); 38 | memset(seq, false, sizeof(seq)); 39 | pre = currentNum; 40 | bool es =true; 41 | for (int i =1; i < n; ++i) 42 | { 43 | scanf("%d",¤tNum); 44 | total = abs(pre-currentNum); 45 | if(total <=0 || total>n-1){ 46 | es =false; 47 | }else if(seq[total]){ //Already set 48 | es = false; 49 | } 50 | seq[total]=true; 51 | pre = currentNum; 52 | } 53 | if(es) 54 | printf("Jolly\n"); 55 | else 56 | printf("Not jolly\n"); 57 | } 58 | return 0; 59 | } 60 | -------------------------------------------------------------------------------- /UVa/10055 - Hashmat the brave warrior.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10055 - Hashmat the Brave Warrior 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | 14 | long long hS,oS; 15 | 16 | while (cin>>hS>>oS){ 17 | if(hS 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | for(int v,t;scanf("%d%d",&v,&t) != EOF;printf("%d\n",v * (2*t))){} 16 | 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /UVa/10079 - Pizza Cutting.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10079 - Pizza Cutting 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | long long n=0; 14 | cin>>n; 15 | while(n>-1){ 16 | cout<<(n*(n+1)/2)+1<>n; 18 | } 19 | return 0; 20 | } 21 | 22 | -------------------------------------------------------------------------------- /UVa/10137 - The Trip.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10137 - The Trip 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | */ 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | int main(){ 29 | int n; 30 | double amount; 31 | while(scanf("%d",&n) && n!=0){ 32 | vector money; 33 | double amount,total=0,respPos=0,respNeg=0; 34 | for (int i = 0; i < n; ++i) 35 | { 36 | scanf("%lf",&amount); 37 | total += amount; 38 | money.push_back(amount); 39 | } 40 | total /= n; 41 | for (int i = 0; i < n; ++i) 42 | { 43 | double dif =(double) (long) ((money[i]-total) * 100.0) / 100.0; 44 | if(dif>0) 45 | respPos+=dif; 46 | else 47 | respNeg+=dif; 48 | } 49 | double resp = (-respNeg > respPos) ? -respNeg : respPos; 50 | resp = (resp<0)?-resp:resp; 51 | printf("$%.2lf\n",resp); 52 | } 53 | 54 | return 0; 55 | } 56 | -------------------------------------------------------------------------------- /UVa/10260 - Soundex.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10260 - Soundex 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | 14 | string soundex[6] = {"BFPV","CGJKQSXZ","DT","L","MN","R"}; 15 | string word; 16 | 17 | while(getline(cin,word)){ 18 | int actual=-1; 19 | int tam= word.size(); 20 | for(int i=0;i 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | 31 | int main(){ 32 | int cases; 33 | scanf("%d",&cases); 34 | while(cases--){ 35 | int n; 36 | float grade,resp=0,average=0; 37 | scanf("%d",&n); 38 | float students[n]; 39 | 40 | for(int i=0;iaverage){ 48 | resp++; 49 | } 50 | } 51 | resp/=n; 52 | resp*=100; 53 | printf("%.3lf",resp); 54 | cout<<"%"< 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | using namespace std; 32 | 33 | int main(){ 34 | int n;scanf("%d",&n); 35 | string line; 36 | getline (cin,line); 37 | map > combos; 38 | //size_t pos; 39 | while(n--){ 40 | getline (cin,line); 41 | int pos = line.find(' '); 42 | combos[line.substr(0,pos)].insert(line.substr(pos+1,line.size()-pos)); 43 | } 44 | 45 | map >::const_iterator itr; 46 | for(itr = combos.begin(); itr != combos.end(); ++itr){ 47 | cout<<(*itr).first<<" "<<(*itr).second.size()< 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | int n; 14 | while(scanf("%d",&n)&& n){ 15 | int num; 16 | bool print =true; 17 | vector nums; 18 | for(int i=0;i 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int n; 44 | while(scanf("%d",&n) && n != 0) { 45 | int bet,max_sum,current_sum; 46 | current_sum = max_sum = 0; 47 | while(n--) { 48 | scanf("%d",&bet); 49 | current_sum = max(0,current_sum+bet); 50 | max_sum = max(max_sum,current_sum); 51 | } 52 | if(max_sum == 0) { 53 | printf("Losing streak.\n"); 54 | }else { 55 | printf("The maximum winning streak is %d.\n",max_sum); 56 | } 57 | } 58 | return 0; 59 | } -------------------------------------------------------------------------------- /UVa/10696 - F91.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10696 - f91 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | int n; 14 | while(scanf("%d",&n) && n){ 15 | if(n>100){ 16 | printf("f91(%d) = %d\n", n,n-10); 17 | }else{ 18 | printf("f91(%d) = %d\n", n,91); 19 | } 20 | } 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /UVa/10783 - Odd Sum.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10783 - Odd Sum 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | int main(){ 30 | int cases,cace=1; 31 | scanf("%d",&cases); 32 | while(cases--){ 33 | int a,b;scanf("%d\n%d",&a,&b); 34 | int total =0; 35 | for(int i =a;i 14 | #include 15 | #define min(a, b) (((a) < (b)) ? (a) : (b)) 16 | #define max(a, b) (((a) > (b)) ? (a) : (b)) 17 | int main(){ 18 | int n;scanf("%d",&n); 19 | while(n--){ 20 | int s,t,x,y; 21 | scanf("%d %d",&s,&t); 22 | y=fabs(s-t)/2; 23 | x=s-y; 24 | if((x+y==s) && (fabs(x-y)==t)) 25 | printf("%d %d\n",max(x,y),min(x,y)); 26 | else 27 | printf("impossible\n"); 28 | } 29 | return 0; 30 | } -------------------------------------------------------------------------------- /UVa/10812 - Beat the Spread!.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 10812 - Beat the Spread! 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | 6 | Solution. 7 | Ad-hoc. 8 | */ 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | using namespace std; 30 | typedef long long ll; 31 | typedef pair ii; 32 | typedef vector vii; 33 | typedef vector vi; 34 | #define INF 1000000000 35 | 36 | 37 | int main(){ 38 | int n;scanf("%d",&n); 39 | while(n--){ 40 | int s,t,x,y; 41 | scanf("%d %d",&s,&t); 42 | y=abs(s-t)/2; 43 | x=s-y; 44 | if((x+y==s) && (abs(x-y)==t)) 45 | printf("%d %d\n",max(x,y),min(x,y)); 46 | else 47 | printf("impossible\n"); 48 | 49 | } 50 | 51 | return 0; 52 | 53 | } -------------------------------------------------------------------------------- /UVa/110401 - Vito's family.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 110401 - Vito's Family 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | using namespace std; 28 | 29 | int *relatives; 30 | int *distances; 31 | 32 | int main(){ 33 | int cases; 34 | scanf("%d",&cases); 35 | 36 | while(cases--){ 37 | int num,sum=0; 38 | scanf("%d",&num); 39 | 40 | distances = new int [num-1]; 41 | relatives = new int [num]; 42 | 43 | 44 | for(int i=0;i>relatives[i]; 46 | } 47 | for(int i=0;i 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int n,a,b; 44 | scanf("%d",&n); 45 | while(n--){ 46 | scanf("%d %d", &a, &b); 47 | if(a>b) 48 | printf(">\n"); 49 | else if(a 11 | #include 12 | #include 13 | 14 | 15 | using namespace std; 16 | 17 | int main(){ 18 | 19 | long double n,p; 20 | 21 | while(cin>>n>>p){ 22 | cout< 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | using namespace std; 35 | 36 | int get(vector *tree,int i){ 37 | int sum = 0; 38 | while(i>0){ 39 | sum +=tree->at(i); 40 | i-=i&-i; 41 | } 42 | return sum; 43 | } 44 | void add(vector *tree, int idx ,int val){ 45 | while (idx < tree->size()){ 46 | tree->at(idx) += val; 47 | idx += (idx & -idx); 48 | } 49 | } 50 | 51 | int main(){ 52 | long long n; 53 | while(scanf("%lld",&n) && n != 0){ 54 | vector inv; 55 | long long total=0; 56 | long long size=0; 57 | for (long long i = n,num; i--; scanf("%lld",&num),size=max(size,num),inv.push_back(num)); 58 | vector tree (size+1,0); 59 | for (int i = inv.size()-1; size > 0 && i >= 0 ; --i) 60 | { 61 | total += get(&tree,inv[i]-1); 62 | add(&tree,inv[i],1); 63 | } 64 | (total%2 == 0)?printf("Carlos\n"):printf("Marcelo\n"); 65 | } 66 | return 0; 67 | } 68 | -------------------------------------------------------------------------------- /UVa/11541 -Decoding(Uva).cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 11541 - Decoding 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | using namespace std; 10 | 11 | int main(){ 12 | int n,cases=1; 13 | string line; 14 | scanf("%d",&n); 15 | getline(cin,line); 16 | while(n--){ 17 | getline(cin,line); 18 | cout<<"Case "< 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #define GRANDE 500005 24 | using namespace std; 25 | 26 | int main(){ 27 | long n,b,h,w; 28 | while(scanf("%ld %ld %ld %ld",&n,&b,&h,&w) != EOF){ 29 | long p,a,total=GRANDE; 30 | for(int i=0;i=n){ 36 | long preTotal =n*p; 37 | if(preTotal<=b && preTotal 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | using namespace std; 26 | typedef long long ll; 27 | typedef pair ii; 28 | typedef pair si; 29 | typedef pair iii; 30 | typedef vector vsi; 31 | typedef vector vii; 32 | typedef vector vi; 33 | typedef vector vc; 34 | typedef vector vs; 35 | typedef map msvs; 36 | typedef map msi; 37 | typedef map mss; 38 | #define INF 1000000000 39 | 40 | 41 | int main(){ 42 | // freopen("in.in", "r", stdin); 43 | int n,i=1; 44 | scanf("%d",&n); 45 | while(n--){ 46 | vi salaries(3); 47 | scanf("%d %d %d", &salaries[0], &salaries[1], &salaries[2]); 48 | sort(salaries.begin(), salaries.end()); 49 | printf("Case %d: %d\n",i++,salaries[1]); 50 | } 51 | return 0; 52 | 53 | } -------------------------------------------------------------------------------- /UVa/11799 - Horror Dash.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | 25 | int main(){ 26 | int cases,cace=1; 27 | scanf("%d",&cases); 28 | while(cases--){ 29 | int n,temp,mayor = 0; 30 | scanf("%d",&n); 31 | for (int i = 0; i < n; ++i) 32 | { 33 | scanf("%d",&temp); 34 | mayor = max(temp,mayor); 35 | } 36 | printf("Case %d: %d\n",cace++,mayor); 37 | } 38 | return 0; 39 | } -------------------------------------------------------------------------------- /UVa/11988 - Broken Keyboard (a.k.a. Beiju Text).cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 11988 - Broken Keyboard (a.k.a. Beiju Text) 3 | UVa Online Judge 4 | Ramon Hossein 5 | */ 6 | 7 | #include 8 | 9 | using namespace std; 10 | 11 | int main() 12 | { 13 | string frase; 14 | list texto; 15 | list::iterator it; 16 | while(getline(cin,frase)) 17 | { 18 | texto.clear(); 19 | it = texto.begin(); 20 | for(int i=0;i) to count how many times appears one letter and then just print 8 | those that appears once. 9 | 10 | Note. 11 | Didn't know how to convert a string to upper or lower case. 12 | http://notfaq.wordpress.com/2007/08/04/cc-convert-string-to-upperlower-case/ 13 | 14 | */ 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | using namespace std; 36 | 37 | 38 | int main(){ 39 | map > words; 40 | vector result; 41 | string word,wordSorted;cin>>word; 42 | while(word != "#"){ 43 | wordSorted=word; 44 | transform(wordSorted.begin(), wordSorted.end(),wordSorted.begin(),::toupper); 45 | sort(wordSorted.begin(),wordSorted.end()); 46 | words[wordSorted].first=word; 47 | words[wordSorted].second++; 48 | cin>>word; 49 | } 50 | map >::const_iterator itr; 51 | for(itr = words.begin(); itr != words.end(); ++itr){ 52 | if((*itr).second.second == 1) 53 | result.push_back((*itr).second.first); 54 | } 55 | sort(result.begin(),result.end()); 56 | int total = result.size(); 57 | for (int i = 0; i < total; ++i) 58 | { 59 | cout< a -> B -> b -> C -> c ..... -> Y -> y -> Z -> z' 9 | */ 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | using namespace std; 31 | 32 | bool compare (char a, char b) 33 | { 34 | bool minisculaA = true, minisculaB = true; 35 | if (a >= 'A' && a <= 'Z') 36 | minisculaA = false; 37 | if (b >= 'A' && b <= 'Z') 38 | minisculaB = false; 39 | 40 | //Both are upper or lower case 41 | if (minisculaA && minisculaB) 42 | return a < b; 43 | if (!minisculaA && !minisculaB) 44 | return a < b; 45 | 46 | //a it's a lowercase 47 | if (minisculaA) 48 | { 49 | a -= ('a'-'A'); 50 | return a < b; 51 | } 52 | else 53 | { 54 | b -= ('a'-'A'); 55 | return a <= b; 56 | } 57 | } 58 | 59 | int main(){ 60 | int cases;scanf("%d",&cases); 61 | while(cases--){ 62 | string s; 63 | cin>>s; 64 | sort(s.begin(),s.end(),compare); 65 | do{ 66 | cout< 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | string frase; 16 | string str1="``"; 17 | string str2="''"; 18 | bool primero=true; 19 | while(getline (cin,frase)) { 20 | for(int i=0;i 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | using namespace std; 27 | 28 | void dfs(int start,vector *visited, vector< vector > *graph){ 29 | for (int i = 0; i < graph->at(start).size(); ++i) 30 | { 31 | if(visited->at(graph->at(start)[i]) == 0){ 32 | visited->at(graph->at(start)[i])=1; 33 | dfs(graph->at(start)[i],visited,graph); 34 | } 35 | } 36 | } 37 | bool counted (int i) { return i==0; } 38 | int main(){ 39 | 40 | int nodes; 41 | while(scanf("%d",&nodes) && nodes){ 42 | vector< vector > graph(nodes+1); 43 | int parent; 44 | while(scanf("%d",&parent) && parent){ 45 | int node; 46 | while(scanf("%d",&node) && node){ 47 | graph[parent].push_back(node); 48 | } 49 | } 50 | int q,qN;scanf("%d",&qN); 51 | while(qN--){ 52 | scanf("%d",&q); 53 | 54 | vector visited(nodes+1,0); 55 | dfs(q,&visited,&graph); 56 | int count = ((int) count_if (visited.begin(), visited.end(), counted))-1; 57 | printf("%d",count); 58 | for (int i = 1,inCount=0; i <= nodes && inCount 8 | #include 9 | 10 | using namespace std; 11 | 12 | 13 | int main(){ 14 | int cases; 15 | scanf("%d",&cases); 16 | while(cases--){ 17 | int l,u; 18 | double temp,cont; 19 | int num=0,numd=0; 20 | cin>>l>>u; 21 | for(int i=l;i<=u;i++){ 22 | temp=pow(i,0.5); 23 | cont=0; 24 | for(int j=1;j<=temp;j++){ 25 | if(i%j==0){ 26 | cont++; 27 | if(jnumd){ 31 | numd=(int)cont; 32 | num=i; 33 | } 34 | } 35 | cout<<"Between "< 9 | 10 | using namespace std; 11 | 12 | 13 | int swap(int lista[], int tam){ 14 | 15 | int TAM=tam; 16 | int temp=0; 17 | int cont= 0; 18 | 19 | for (int i=1; i lista[j+1]){ 22 | cont++; 23 | temp = lista[j]; 24 | lista[j] = lista[j+1]; 25 | lista[j+1] = temp; 26 | } 27 | } 28 | } 29 | return cont; 30 | } 31 | 32 | 33 | int main(){ 34 | 35 | int sc; 36 | cin>>sc; 37 | while (sc) { 38 | 39 | int tam; 40 | cin>>tam; 41 | int train[tam]; 42 | 43 | for(int i = 0; i < tam;i++){cin>>train[i];} 44 | int resp; 45 | resp = swap(train,tam); 46 | 47 | cout<<"Optimal train swapping takes "< 9 | 10 | using namespace std; 11 | 12 | int main(){ 13 | long b,p,m; 14 | 15 | while(cin>>b>>p>>m){ 16 | long mask = 1; 17 | long pow2 = b % m; 18 | long r = 1; 19 | while (mask){ 20 | if (p & mask) 21 | r = (r * pow2) % m; 22 | pow2 = (pow2*pow2) % m; 23 | mask <<= 1; 24 | } 25 | cout< 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | string frase; 16 | while(getline (cin,frase)) { 17 | int tam = frase.size(); 18 | char c; 19 | int num; 20 | for(int i=0;i 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | string line; 16 | 17 | while(getline (cin,line)) { 18 | int tam = line.size(); 19 | int cont; 20 | string sub; 21 | for(int i=0;i 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | string line; 15 | int cont=0; 16 | 17 | while(getline (cin,line)) { 18 | int tam =line.size(); 19 | for(int i=0;i='A' && line[i]<='Z')||(line[i]>='a' && line[i]<='z')){ 21 | cont++; 22 | for(;(line[i]>='A' && line[i]<='Z')||(line[i]>='a' && line[i]<='z') && i 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | using namespace std; 31 | 32 | int main(){ 33 | string s; 34 | while(getline(cin,s)){ 35 | map each; 36 | int size = s.size(),top=0; 37 | for (int i = 0; i < size; ++i) 38 | { 39 | if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')){ 40 | each[s[i]]++; 41 | top = max(top,each[s[i]]); 42 | } 43 | } 44 | map::const_iterator itr; 45 | for(itr = each.begin(); itr != each.end(); ++itr){ 46 | if((*itr).second == top)cout<<(*itr).first; 47 | } 48 | printf(" %d\n",top); 49 | } 50 | 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /UVa/543 - Goldbach's Conjecture.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 543 - Goldbach's Conjecture 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | const int SIZE=1000001; 15 | 16 | bool criba[SIZE+1]; 17 | 18 | void buildCriba(){ 19 | memset(criba,true,sizeof(criba)); 20 | 21 | criba[0]=criba[1]=false; 22 | for(int i=4; i 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | int main(){ 15 | string number; 16 | 17 | cin>>number; 18 | 19 | while(number!="0"){ 20 | 21 | int tam=number.size(); 22 | int exp=tam; 23 | int num; 24 | long long int resp=0; 25 | for(int i=0;i>number; 32 | } 33 | 34 | return 0; 35 | } 36 | -------------------------------------------------------------------------------- /UVa/576 - Haiku Review.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 576 - Haiku Review 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | string line; 15 | string vowels = "aeiouy"; 16 | 17 | getline(cin,line); 18 | while(line!="e/o/i"){ 19 | 20 | int tam=line.size(); 21 | int syllables[3]={0}; 22 | int pos=0; 23 | 24 | for(int i=0;i 9 | #include 10 | 11 | using namespace std; 12 | 13 | int main(){ 14 | 15 | int n; 16 | int set=1; 17 | 18 | while(scanf("%d",&n) && n){ 19 | 20 | vector bricks; 21 | int brick; 22 | int media=0; 23 | int moves=0; 24 | 25 | for(int i=0;imedia){ 34 | moves += bricks[i]- media; 35 | } 36 | } 37 | printf("Set #%d\n", set); 38 | printf("The minimum number of moves is %d.\n\n", moves); 39 | set++; 40 | 41 | } 42 | 43 | 44 | return 0; 45 | } 46 | -------------------------------------------------------------------------------- /UVa/686 - Goldbach's Conjecture (II).cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 686 - Goldbach's Conjecture (II) 3 | UVa Online Judge 4 | Esteban Arango Medina 5 | marranoparael31@gmail.com 6 | */ 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | const int SIZE=1000000; 15 | 16 | bool criba[SIZE+1]; 17 | 18 | void buildCriba(){ 19 | memset(criba,false,sizeof(criba)); 20 | 21 | criba[0]=criba[1]=true; 22 | for(int i=4; i 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | using namespace std; 24 | 25 | #define MAX 52 26 | 27 | 28 | long fib[MAX]; 29 | 30 | int main() 31 | { 32 | fib[1] = fib[2] = 1; 33 | for(long i = 3; i < MAX; i++) 34 | fib[i] = fib[i-2] + fib[i-1]; 35 | int n; 36 | while(scanf("%d",&n) && n!=0){ 37 | printf("%ld\n",fib[n+1]); 38 | } 39 | return 0; 40 | } -------------------------------------------------------------------------------- /UVa/Factorial.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace std; 4 | 5 | void factorial(int num); 6 | 7 | int main() 8 | { 9 | int num; 10 | 11 | cout<<"Entre el numero al que le desea calcular el factorial "<>num; 13 | factorial(num); 14 | system("pause"); 15 | 16 | return 0; 17 | } 18 | 19 | void factorial(int num) 20 | { 21 | int numero=num; 22 | int contador=1; 23 | int acomulador=1; 24 | while(contador 3 | #include 4 | #include 5 | 6 | 7 | using namespace std; 8 | 9 | //typedef long long int bigint; 10 | 11 | int GCD(int a,int b) { 12 | while (b > 0) { 13 | a = a % b; 14 | a ^= b; 15 | b ^= a; 16 | a ^= b; 17 | } 18 | return a; 19 | } 20 | 21 | int main(){ 22 | 23 | int s; 24 | 25 | while (scanf("%d",&s)!=EOF){ 26 | 27 | int matriz [s][s]; 28 | int deter=0; 29 | int vector [s]; 30 | int num; 31 | for(int i=0;i 2 | 3 | using namespace std; 4 | 5 | int main(){ 6 | int cases; 7 | long long l1; 8 | long long l2; 9 | long long l3; 10 | 11 | int i=0; 12 | 13 | cin>>cases; 14 | 15 | while(cases--){ 16 | 17 | cin>>l1>>l2>>l3; 18 | 19 | if(l1 + l2 <= l3) 20 | cout<<"Case "< 5 | 6 | using namespace std; 7 | using ll=long long; 8 | #define int ll 9 | 10 | typedef long long ll; 11 | typedef pair ii; 12 | typedef pair si; 13 | typedef pair iii; 14 | typedef vector vsi; 15 | typedef vector vii; 16 | typedef vector vi; 17 | typedef vector vc; 18 | typedef vector vs; 19 | typedef map msvs; 20 | typedef map msi; 21 | typedef map mci; 22 | typedef map mii; 23 | typedef map mss; 24 | #define rep(i,a,n) for (int i=a;i=a;i--) 26 | #define all(x) (x).begin(), (x).end() 27 | #define pb push_back 28 | #define mp make_pair 29 | #define endl '\n' // Normal `cout << endl` flushes the output every time wich hit performance badly 30 | #define deb(x) cout<<#x<<": "<>T; 47 | while(T--) { 48 | 49 | } 50 | return 0; 51 | } -------------------------------------------------------------------------------- /·Documentation/Books/Art_of_Programming_Contest_SE_for_uva.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/·Documentation/Books/Art_of_Programming_Contest_SE_for_uva.pdf -------------------------------------------------------------------------------- /·Documentation/Books/Programming_Challenges.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/·Documentation/Books/Programming_Challenges.pdf -------------------------------------------------------------------------------- /·Documentation/Data Structures/Fenwick Tree.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | using namespace std; 5 | 6 | int get(vector *tree,int i){ 7 | int sum = 0; 8 | while(i>0){ 9 | sum +=tree->at(i); 10 | i-=i&-i; 11 | } 12 | return sum; 13 | } 14 | void add(vector *tree, int idx ,int val){ 15 | while (idx < tree->size()){ 16 | tree->at(idx) += val; 17 | idx += (idx & -idx); 18 | } 19 | } 20 | 21 | int main(){ 22 | long long n; 23 | while(scanf("%lld",&n) && n != 0){ 24 | vector inv; 25 | long long total=0; 26 | long long size=0; 27 | for (long long i = n,num; i--; scanf("%lld",&num),size=max(size,num),inv.push_back(num)); 28 | vector tree (size+1,0); 29 | for (int i = inv.size()-1; size > 0 && i >= 0 ; --i) 30 | { 31 | total += get(&tree,inv[i]-1); 32 | add(&tree,inv[i],1); 33 | } 34 | } 35 | return 0; 36 | } -------------------------------------------------------------------------------- /·Documentation/Data Structures/Union Find Disjoint Set.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | using namespace std; 5 | 6 | typedef vector vi; 7 | 8 | class UnionFind { 9 | private: 10 | vi p, rank, setSize; // vi p is the key part 11 | int numSets; 12 | public: 13 | UnionFind(int N) { 14 | p.assign(N, 0); for (int i = 0; i < N; ++i) p[i] = i; 15 | rank.assign(N, 0); // optional speedup 16 | setSize.assign(N, 1); // optional feature 17 | numSets = N; // optional feature 18 | } 19 | 20 | int findSet(int i) { return (p[i] == i) ? i : (p[i] = findSet(p[i])); } 21 | bool isSameSet(int i, int j) { return findSet(i) == findSet(j); } 22 | 23 | int numDisjointSets() { return numSets; } // optional 24 | int sizeOfSet(int i) { return setSize[findSet(i)]; } // optional 25 | 26 | void unionSet(int i, int j) { 27 | if (isSameSet(i, j)) return; // i and j are in same set 28 | int x = findSet(i), y = findSet(j); // find both rep items 29 | if (rank[x] > rank[y]) swap(x, y); // keep x 'shorter' than y 30 | p[x] = y; // set x under y 31 | if (rank[x] == rank[y]) ++rank[y]; // optional speedup 32 | setSize[y] += setSize[x]; // combine set sizes at y 33 | --numSets; // a union reduces numSets 34 | } 35 | }; -------------------------------------------------------------------------------- /·Documentation/Strings/ Suffix arrays – a programming contest approach.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/·Documentation/Strings/ Suffix arrays – a programming contest approach.pdf -------------------------------------------------------------------------------- /·Documentation/Strings/Linear-Time Longest-Common-Pre x Computation in Sux Arrays and Its Applications.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/·Documentation/Strings/Linear-Time Longest-Common-Pre x Computation in Sux Arrays and Its Applications.pdf -------------------------------------------------------------------------------- /·Documentation/manual(andmej).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esbanarango/Competitive-Programming/41a7e496565b90e5bcd7f9c527a6e4e20c6477f1/·Documentation/manual(andmej).pdf --------------------------------------------------------------------------------