SlideShare une entreprise Scribd logo
1  sur  18
COMPETITIVE PROGRAMMING Ishani Parekh
What is it ? Writing programs to solve problems in a contest environment.  One has limited time to solve problems. Ranging from a few hours to a few days.  Team participation or Individual.
What do these contests test ? Algorithm Skills (Must !) Basic Math Skills Programming Skills Speed (Good typing speed helps) Creativity Debugging Skills (For challenge phase)
Some Prestigious contests ACM – ICPC Google Code Jam Topcoder Open Facebook Hacker Cup (Recent)
ACM - ICPC It is like the Olympics for Programming. Students who win these contests are some of the finest brains in the world and are instantly recognized by top institutions (companies, academia)
Rules -1 Online Contest - National level (around 1000 teams) Onsite Contest - National level (around 130 teams) World Finals (around 2-3 teams selected from India)
Rules - 2 Team Contest (max size:3) Languages : C/C++/Java Time : 5 hrs One machine Set of around 10 problems. Ranking is based on number of problems solved with penalty for wrong submissions.
What do you gain? Improve your logical and analytical skills. Good point to mention in CV. Improve your network of friends who are also interesting in programming. Recognition. Most importantly, have fun. Onsite contests also plan excursions.
Where to practice Topcoder (highly recommended) SPOJ  Codeforces Codechef UVa USACO
A Typical Problem http://www.spoj.pl/problems/AGGRCOW/ Problem Statement Input Output Constraints (you don’t check for this. It will be satisfied by the input) Time Limit (typically ~10^7 operations under 1s) Memory Limit (typically 64 MB at runtime)
Contest System Each problem has a problem setter. He writes the problem, generates input test cases and their corresponding correct outputs. Your program takes input and generates output in the format specified in the problem. Outputs of your program will be compared with the correct outputs.
Responses from the judge http://www.spoj.pl/status/ Accepted Wrong Answer Time Limit Exceeded Compilation error Segmentation fault (SIGSEGV) … …
Tips for good performance Maintain pre-written templates for Standard algorithms  Necessary headers, functions etc. (eg. all #includes and macros in c++) Indent your code  If you use Vim editor, configure your .vimrc file for your programming language. Use the visual mode to indent code.
Tips for good performance Use functions/methods wherever possible to avoid repetition of code. Solve the problem on paper first. Then only code.  Write test cases for the problem and test your logic and program with those test cases before submitting.  Test your program for the worst case. Use “time” command to check the running time of your programs in linux.
Tips for good performance Know the contest rules before you compete. Take risks and don’t panic . Read contest editorials/explanations after the contest is over.  Solve your questions by Thinking yourself or searching the internet. Asking friends. Visiting forums.
Resources Topcoder Tutorials Topcoder Forums Google Code Jam Codechef  Wiki
Demo Topcoder Arena.

Contenu connexe

En vedette

Modeolo carta de solicitud de proyectos
Modeolo carta de solicitud de proyectosModeolo carta de solicitud de proyectos
Modeolo carta de solicitud de proyectos
duberlisg
 
Carta de permiso al director
Carta de permiso al directorCarta de permiso al director
Carta de permiso al director
Richard González
 

En vedette (18)

Web development
Web developmentWeb development
Web development
 
Spyware
SpywareSpyware
Spyware
 
Workshop on programming contest
Workshop on programming contestWorkshop on programming contest
Workshop on programming contest
 
On the Parallel Complexity of Minimum Sum of Diameters clustering
On the Parallel Complexity of Minimum Sum of Diameters clusteringOn the Parallel Complexity of Minimum Sum of Diameters clustering
On the Parallel Complexity of Minimum Sum of Diameters clustering
 
Bitfusion
BitfusionBitfusion
Bitfusion
 
Orientation
OrientationOrientation
Orientation
 
Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures Bitfusion Nimbix Dev Summit Heterogeneous Architectures
Bitfusion Nimbix Dev Summit Heterogeneous Architectures
 
Bitfusion Overview Tensorflow Meetup
Bitfusion Overview Tensorflow MeetupBitfusion Overview Tensorflow Meetup
Bitfusion Overview Tensorflow Meetup
 
3D password
3D password3D password
3D password
 
Cdma introduction pr
Cdma introduction prCdma introduction pr
Cdma introduction pr
 
3d passwords
3d passwords3d passwords
3d passwords
 
Basic Problems and Solving Algorithms
Basic Problems and Solving AlgorithmsBasic Problems and Solving Algorithms
Basic Problems and Solving Algorithms
 
Design and Analysis of Algorithms
Design and Analysis of AlgorithmsDesign and Analysis of Algorithms
Design and Analysis of Algorithms
 
Algorithm analysis (All in one)
Algorithm analysis (All in one)Algorithm analysis (All in one)
Algorithm analysis (All in one)
 
3d password ppt
3d password ppt3d password ppt
3d password ppt
 
Modeolo carta de solicitud de proyectos
Modeolo carta de solicitud de proyectosModeolo carta de solicitud de proyectos
Modeolo carta de solicitud de proyectos
 
Vizify-tech seminar ppt
Vizify-tech seminar pptVizify-tech seminar ppt
Vizify-tech seminar ppt
 
Carta de permiso al director
Carta de permiso al directorCarta de permiso al director
Carta de permiso al director
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Competitive programming

  • 2. What is it ? Writing programs to solve problems in a contest environment. One has limited time to solve problems. Ranging from a few hours to a few days. Team participation or Individual.
  • 3. What do these contests test ? Algorithm Skills (Must !) Basic Math Skills Programming Skills Speed (Good typing speed helps) Creativity Debugging Skills (For challenge phase)
  • 4. Some Prestigious contests ACM – ICPC Google Code Jam Topcoder Open Facebook Hacker Cup (Recent)
  • 5.
  • 6. ACM - ICPC It is like the Olympics for Programming. Students who win these contests are some of the finest brains in the world and are instantly recognized by top institutions (companies, academia)
  • 7. Rules -1 Online Contest - National level (around 1000 teams) Onsite Contest - National level (around 130 teams) World Finals (around 2-3 teams selected from India)
  • 8. Rules - 2 Team Contest (max size:3) Languages : C/C++/Java Time : 5 hrs One machine Set of around 10 problems. Ranking is based on number of problems solved with penalty for wrong submissions.
  • 9. What do you gain? Improve your logical and analytical skills. Good point to mention in CV. Improve your network of friends who are also interesting in programming. Recognition. Most importantly, have fun. Onsite contests also plan excursions.
  • 10. Where to practice Topcoder (highly recommended) SPOJ Codeforces Codechef UVa USACO
  • 11. A Typical Problem http://www.spoj.pl/problems/AGGRCOW/ Problem Statement Input Output Constraints (you don’t check for this. It will be satisfied by the input) Time Limit (typically ~10^7 operations under 1s) Memory Limit (typically 64 MB at runtime)
  • 12. Contest System Each problem has a problem setter. He writes the problem, generates input test cases and their corresponding correct outputs. Your program takes input and generates output in the format specified in the problem. Outputs of your program will be compared with the correct outputs.
  • 13. Responses from the judge http://www.spoj.pl/status/ Accepted Wrong Answer Time Limit Exceeded Compilation error Segmentation fault (SIGSEGV) … …
  • 14. Tips for good performance Maintain pre-written templates for Standard algorithms Necessary headers, functions etc. (eg. all #includes and macros in c++) Indent your code If you use Vim editor, configure your .vimrc file for your programming language. Use the visual mode to indent code.
  • 15. Tips for good performance Use functions/methods wherever possible to avoid repetition of code. Solve the problem on paper first. Then only code. Write test cases for the problem and test your logic and program with those test cases before submitting. Test your program for the worst case. Use “time” command to check the running time of your programs in linux.
  • 16. Tips for good performance Know the contest rules before you compete. Take risks and don’t panic . Read contest editorials/explanations after the contest is over. Solve your questions by Thinking yourself or searching the internet. Asking friends. Visiting forums.
  • 17. Resources Topcoder Tutorials Topcoder Forums Google Code Jam Codechef Wiki