├── .clang-format ├── .gitattributes ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── 2nd Semester Programs ├── Armstrong.cpp ├── Bubble_Sort.cpp ├── Fibonacci_Recursive.cpp ├── Fibonacci_using_Arrays.cpp ├── Insertion_Sort.cpp ├── LCM_HCF.cpp ├── Linear_Search.c ├── MINIMUM_2_NUMBERS ├── Matrix_Multiplication.cpp ├── Matrix_Printing.cpp ├── Maximum_of_2_Numbers.cpp ├── Multipliaction_Tables.cpp ├── Parallel_Array_Addiion.c ├── Quadratic_Equation.cpp ├── Reverse_Linked_List.cpp ├── Series_Generator.cpp ├── Square_of_Array_Elements.cpp ├── Swap_2_variables.c ├── Word_Length.cpp └── quicksort.cpp ├── 3rd Semester Programs ├── C_pluss_pluss.cpp ├── Dynamic_Arrays_using_malloc.cpp ├── Friend_Function.cpp ├── Function_Overloading.cpp ├── HackerEarth_Amazing_Test.cpp ├── HackerEarth_Number_of_Intrest_2.cpp ├── Hash_Function.cpp ├── Lab_Binary_Search_Tree.cpp ├── Lab_Date.cpp ├── Lab_Employee_Class.cpp ├── Lab_Infix_to_Postfix.c ├── Lab_Linked_List.cpp ├── Lab_Queue_of_Arrays.cpp ├── Lab_Sparse_Matrix.cpp ├── Lab_Stack_Operator_Overloading.cpp ├── Lab_String_Concatination.cpp ├── Maze_Problem_using_Stacks.c ├── Operator_Overloading.cpp ├── Pointers Test.cpp ├── Polynomial_as_Circular_Linked_List.cpp ├── Stack_Operations.cpp ├── Stack_Operations_Dynamic.cpp ├── Stack_using_Linked_List.cpp ├── String_Palindrome_using_Stack.cpp └── TIme_Class.cpp ├── 4th Semester Programs ├── Fractional_Knapsack.cpp ├── Lab_Knapsackcpp.cpp ├── Lab_Subset.cpp ├── Lab_Traveling_Salesman.cpp ├── Lab_Warshal_Transitive_Closure.cpp └── Prims_Minimum_Spanning_Tree.cpp ├── 5th Semester Programs ├── Banker's_Algorithm.cpp └── FCFS.CPP ├── 6th Semester Programs └── Leaky_Bucket_Algorithm.c ├── C++ Icon.ico ├── Code Golf ├── Binary_Search_Golf.c ├── Factorial_Golf.c ├── Fibonacci_CodeGolf.c ├── Fizz_Buzz_CodeGolf.c ├── HackerRank_Calculate_GCD.c ├── HackerRank_Leibniz_Code_Golf.c ├── HackerRank_Reversed Number.c ├── Number_of_Divisors_for_a_Number.c ├── Power_of_Thor.c └── Quine.c ├── CodinGame ├── APU_Improvement_Phase.cpp ├── APU_Init_Phase.cpp ├── ASCII_Art.cpp ├── Bender_A_Depresed_Robot.cpp ├── Bubble_Sort.cpp ├── ChuckNoris.cpp ├── CodeChef_Chef_and_the_Wildcard_Matching.cpp ├── CodeChef_Chef_and_the_XORed_Number.cpp ├── Code_of_the_Rings.c ├── Code_of_the_Rings.cpp ├── Coding_Points_Calculation.cpp ├── Conway_Sequence.cpp ├── Defibrillators.cpp ├── Descent.cpp ├── Dwarfs_standing_on_the_shoulders_of_giants.cpp ├── Genome_Sequencing.cpp ├── Heat_Detector.cpp ├── Horse_Racing_Duals.cpp ├── Indiana_Level_1.cpp ├── Labyrinth.cpp ├── MIME_Type.cpp ├── Mars_Lander.cpp ├── Mayan_Calcualtion.cpp ├── Music_Scores.cpp ├── Network_Cabling.cpp ├── Nintendo_Challenge.cpp ├── Paranoid_Android.cpp ├── Paranoid_Android_One_step_further.cpp ├── Paranoid_Android_Optimization.c ├── Platinum_Rift_2.cpp ├── Power_of_Thor.c ├── Roller_Coaster.cpp ├── Scrabble.cpp ├── Skynet_Strikes_Back.cpp ├── Skynet_The_Chasm.cpp ├── Skynet_The_Virus.cpp ├── Stock_Exchange_Losses.cpp ├── Super_Computer.cpp ├── Surface.cpp ├── Teads_Sponsored_Challenge.cpp ├── Telephone_Numbers.cpp ├── Temperatures.cpp ├── The_Resistance.cpp ├── Thor_vs_Giants.cpp ├── Triangulation.cpp └── Tron_Battle.cpp ├── Games and Graphics ├── 2048.cpp ├── Animation.cpp ├── Box_Drawing_program.cpp ├── Snake.cpp └── micky_mouse.c ├── Miscellaneous ├── 2_Egg_Problem.cpp ├── ACM_ICPC_Ranking.cpp ├── AI.c ├── Average_Distance_of_Pieces_on_Board.cpp ├── Binary_Printing.cpp ├── Bitmap_to_Pixel_Array.cpp ├── Breath_First_Search.cpp ├── BruteForce_Sequence.cpp ├── ClashofClans_War_Score_Algorithm.cpp ├── Counting_Sort.cpp ├── Duplicate_Test.cpp ├── Eficient_Array_Reading.cpp ├── Fibonacci_Generator.cpp ├── Flags.cpp ├── Font_Colour_Test.cpp ├── GTC.cpp ├── Geeks for Geeks Minimax.cpp ├── Geeks for Geeks Minimax_Alpha_Beta_Pruning.cpp ├── GeeksForGeeks_Evaluation_Function.cpp ├── GeeksForGeeks_Zorbist_Hashing.cpp ├── Gotcha_10.cpp ├── Gotcha_14.cpp ├── Gotcha_34.c ├── Gotcha_60.cpp ├── Gotcha_9.cpp ├── HackerEarth_Hall_of_Fame.cpp ├── HackerEarth_Score_Calculator.cpp ├── India_Map.cpp ├── Internship_Assignment_2.cpp ├── Kothis_Code.cpp ├── Large_Factorials.cpp ├── Linear Sort.cpp ├── Map_Test.cpp ├── Microsoft Palette Createor.cpp ├── No_of_Squares.c ├── Number_of_Digits.cpp ├── Patterns_Tatva_2016.cpp ├── Playing_Around_with_Stack_Size.cpp ├── Problem.cpp ├── Program2.cpp ├── Program_4.cpp ├── Program_5.cpp ├── Program_6.cpp ├── Quora_Check_Digit.cpp ├── Quora_Question.cpp ├── Quora_Question_1.cpp ├── Quora_Question_DP.cpp ├── Random_Numbers_C++11.cpp ├── Restart PC.cpp ├── SPOJ_The_Turtle's_Shortest_Path.cpp ├── Series.cpp ├── Set_Graph_Permuattion_Operations.cpp ├── Stackoverflow_Debugging.cpp ├── Stackoverflow_Question.c ├── TestCase_Generator.cpp ├── Tower_of_Hanoi.cpp ├── WhatsApp_See_More_Generator.cpp ├── Word_Count.c ├── Words from a file.cpp └── test.cpp ├── Multi-Threading ├── 2_Threads_Printing.cpp ├── Lock_Guard.cpp └── Mutex_Synchronization.cpp ├── OpenGL ├── Anagha_CG_Project.cpp ├── Anagha_CG_Project_Dots.cpp ├── Anand_CG_Project.cpp ├── Basic_Skleton.cpp ├── Meghana's_Project.cpp ├── Mrudula_CG_Project.cpp ├── Prithvi_CG_Project.cpp ├── Rubics_Cube_Solver.cpp ├── Scan_Line.cpp ├── Serpinsky's Gasket.cpp ├── Shreyas_CG_Project.cpp ├── Sine_Waves.cpp ├── Surabhi_Project.cpp ├── Teapot.cpp ├── freeglut │ ├── bin │ │ ├── freeglut.dll │ │ └── x64 │ │ │ └── freeglut.dll │ ├── include │ │ └── GL │ │ │ ├── freeglut.h │ │ │ ├── freeglut_ext.h │ │ │ ├── freeglut_std.h │ │ │ └── glut.h │ └── lib │ │ ├── freeglut.lib │ │ └── x64 │ │ └── freeglut.lib ├── glew-2.0.0 │ ├── bin │ │ ├── Win32 │ │ │ └── glew32.dll │ │ └── x64 │ │ │ └── glew32.dll │ ├── doc │ │ ├── advanced.html │ │ ├── basic.html │ │ ├── build.html │ │ ├── credits.html │ │ ├── github.png │ │ ├── glew.css │ │ ├── glew.html │ │ ├── glew.png │ │ ├── glxew.html │ │ ├── index.html │ │ ├── install.html │ │ ├── log.html │ │ ├── new.png │ │ ├── ogl_sm.jpg │ │ ├── travis.png │ │ └── wglew.html │ ├── include │ │ └── GL │ │ │ ├── eglew.h │ │ │ ├── glew.h │ │ │ ├── glxew.h │ │ │ └── wglew.h │ └── lib │ │ ├── Win32 │ │ ├── glew32.lib │ │ └── glew32s.lib │ │ └── x64 │ │ ├── glew32.lib │ │ └── glew32s.lib └── test.cpp └── README.md /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: LLVM 2 | UseTab: Always 3 | IndentWidth: 4 4 | AllowShortIfStatementsOnASingleLine: false 5 | IndentCaseLabels: false 6 | ColumnLimit: 0 7 | TabWidth: 4 8 | BraceWrapping: 9 | AfterClass: false 10 | AfterControlStatement: false 11 | AfterEnum: false 12 | AfterFunction: false 13 | AfterNamespace: false 14 | AfterObjCDeclaration: false 15 | AfterStruct: false 16 | AfterUnion: false 17 | BeforeCatch: false 18 | BeforeElse: true 19 | IndentBraces: false 20 | BreakBeforeBraces: Custom -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | # Edited by Akshay.L.Aradhya 4 | ################################################################################ 5 | 6 | /@Visual Studio Files 7 | *.log 8 | *.sdf 9 | *.suo 10 | /Debug 11 | /1st Year Project 12 | /x64/Debug 13 | *.txt 14 | *.vcxproj 15 | *.filters 16 | *.sln 17 | *.opensdf 18 | *.exe 19 | *.ini 20 | *.pdb 21 | *.user -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "(gdb) Launch", 9 | "type": "cppdbg", 10 | "request": "launch", 11 | "preLaunchTask": "C++ Debug", 12 | "program": "${workspaceFolder}/out.exe", 13 | "args": [], 14 | "stopAtEntry": false, 15 | "cwd": "${workspaceFolder}", 16 | "environment": [], 17 | "externalConsole": true, 18 | "logging": { 19 | "trace": true, 20 | "traceResponse": true 21 | }, 22 | "MIMode": "gdb", 23 | "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", 24 | "setupCommands": [ 25 | { 26 | "description": "Enable pretty-printing for gdb", 27 | "text": "-enable-pretty-printing", 28 | "ignoreFailures": true 29 | } 30 | ] 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "deque": "cpp", 4 | "initializer_list": "cpp", 5 | "list": "cpp", 6 | "vector": "cpp", 7 | "xhash": "cpp", 8 | "xstring": "cpp", 9 | "xtree": "cpp", 10 | "xutility": "cpp", 11 | "random": "cpp", 12 | "tuple": "cpp", 13 | "utility": "cpp", 14 | "queue": "cpp", 15 | "stack": "cpp", 16 | "algorithm": "cpp", 17 | "bitset": "cpp", 18 | "chrono": "cpp", 19 | "cmath": "cpp", 20 | "cstddef": "cpp", 21 | "cstdint": "cpp", 22 | "cstdio": "cpp", 23 | "cstdlib": "cpp", 24 | "cstring": "cpp", 25 | "cwchar": "cpp", 26 | "exception": "cpp", 27 | "fstream": "cpp", 28 | "functional": "cpp", 29 | "ios": "cpp", 30 | "iosfwd": "cpp", 31 | "iostream": "cpp", 32 | "istream": "cpp", 33 | "limits": "cpp", 34 | "map": "cpp", 35 | "memory": "cpp", 36 | "mutex": "cpp", 37 | "new": "cpp", 38 | "ostream": "cpp", 39 | "ratio": "cpp", 40 | "set": "cpp", 41 | "sstream": "cpp", 42 | "stdexcept": "cpp", 43 | "streambuf": "cpp", 44 | "string": "cpp", 45 | "system_error": "cpp", 46 | "thread": "cpp", 47 | "type_traits": "cpp", 48 | "typeinfo": "cpp", 49 | "unordered_map": "cpp", 50 | "xfacet": "cpp", 51 | "xfunctional": "cpp", 52 | "xiosbase": "cpp", 53 | "xlocale": "cpp", 54 | "xlocinfo": "cpp", 55 | "xlocnum": "cpp", 56 | "xmemory": "cpp", 57 | "xmemory0": "cpp", 58 | "xstddef": "cpp", 59 | "xtr1common": "cpp" 60 | } 61 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "C++ Debug", 8 | "type": "shell", 9 | "command": "g++ '${file}' -g -o out" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Armstrong.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int main(){ 6 | 7 | int n,found=0,dig=1; 8 | printf("How many Armstrong numbers do you want to find ? : "); 9 | scanf("%d",&n); 10 | for (int i = 0; found < n;i++) 11 | { 12 | if (i >pow((double)10, (double)dig)-1) dig++; 13 | int sum = 0,j=i; 14 | while (j>0){ 15 | sum += pow((double)(j%10), (double)dig); 16 | j/=10; 17 | } 18 | if (sum == i){ 19 | found++; 20 | printf("Armstrong %d = %d \n",found, i); 21 | } 22 | } 23 | _getch(); 24 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Bubble_Sort.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | 6 | int a[1000], n, i, j; 7 | 8 | printf("Enter the size of the array : "); 9 | scanf("%d", &n); 10 | printf("\nEnter %d elements : ", n); 11 | for (i = 0; i a[j + 1]){ 18 | int temp = a[j]; 19 | a[j] = a[j + 1]; 20 | a[j + 1] = temp; 21 | } 22 | 23 | printf("\nThe sorted array is : "); 24 | for (i = 0; i 2 | #include 3 | 4 | int fib(int n){ 5 | if (n <= 2) return 1; 6 | return fib(n-1) + fib(n-2); 7 | } 8 | 9 | int main(){ 10 | int n; 11 | scanf("%d",&n); 12 | printf("%d",fib(n)); 13 | _getch(); 14 | 15 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Fibonacci_using_Arrays.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(){ 5 | int a[99],i,n; 6 | a[0] = 0; 7 | i = a[1] = 1; 8 | scanf("%d", &n); 9 | while (++i < n) 10 | a[i] = a[i - 1] + a[i - 2]; 11 | for (i = 0; i 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | int a[1000000]; 8 | 9 | void swap(int *a, int *b){ 10 | int *t = a; 11 | *a = *b; 12 | *b = *t; 13 | } 14 | 15 | void printArray(int n){ 16 | int i = 0; 17 | while (i < n) 18 | printf("%d ", a[i++]); 19 | printf("\n"); 20 | 21 | } 22 | 23 | 24 | void main(){ 25 | srand(time(NULL)); 26 | 27 | int x, read = 1; 28 | int key = 1; 29 | const int n = 100000; 30 | clock_t t; 31 | FILE *fp; 32 | fp = fopen("Array.txt", "r+"); 33 | for (int i = 0; i < n; i++){ 34 | fscanf(fp, "%d", &a[i]); 35 | } 36 | 37 | 38 | t = clock(); 39 | //Insertion Sort 40 | for (int i = 1; i < n; i++){ 41 | int t = a[i]; 42 | for (int j = i; j; j--){ 43 | if (t 4 | #include 5 | 6 | void main(){ 7 | int m, n, a, b, temp; 8 | 9 | START: 10 | printf("\nEnter the numbers m and n :"); 11 | scanf("%d%d",&m,&n); 12 | a = n; b = m; 13 | if (m*n == 0) 14 | printf("HCF and LCM cannot be enumerated for 0"); 15 | else{ 16 | while (n>0){ 17 | temp = n; 18 | n = m % n; 19 | m = temp; 20 | } 21 | printf("HCF = %d\t LCM = %d\n",m,a*b/m); 22 | 23 | goto START; 24 | } 25 | _getch(); 26 | 27 | 28 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Linear_Search.c: -------------------------------------------------------------------------------- 1 | main(){ 2 | int key,i,n,a[99]; 3 | printf("Array Size : "); 4 | scanf("%d",&n); 5 | printf("Array : "); 6 | for (i=0;i 2 | #include 3 | 4 | void main(){ 5 | int a, b; 6 | printf("Enter 2 Numbers :"); 7 | scanf("%d %d",&a,&b); 8 | if (a 2 | #include 3 | 4 | void main(){ 5 | int a[10][10], b[10][10], c[10][10]; 6 | int m, n, p, q, i, j, k; 7 | 8 | printf("Enter the size of A : "); 9 | scanf("%d%d",&m,&n); 10 | printf("Enter the size of B : "); 11 | scanf("%d%d", &p, &q); 12 | if (p == n){ 13 | printf("Enter the Matrix A : "); 14 | for (i = 0; i < m*n; i++) 15 | scanf("%d", &a[i/n][i%n]); 16 | printf("Enter the Matrix B : "); 17 | for (i = 0; i < p*q; i++) 18 | scanf("%d", &b[i/q][i%q]); 19 | 20 | 21 | // Multiplication 22 | for (i = 0; i < m; i++){ 23 | for (j = 0; j < q; j++){ 24 | c[i][j] = k = 0; 25 | while (k < n){ 26 | c[i][j] += a[i][k] * b[k][j]; 27 | printf("\n%d %d %d %d", c[i][j],a[i][k],b[k][j],k); 28 | k++; 29 | } 30 | } 31 | } 32 | 33 | 34 | //Printing A,B & C 35 | printf("\nMatrix A : "); 36 | for (i = 0; i < m*n; i++){ 37 | if (i%n == 0) 38 | printf("\n"); 39 | printf("%6d", a[i/n][i%n]); 40 | } 41 | printf("\nMatrix B : "); 42 | for (i = 0; i < p*q; i++){ 43 | if (i%q == 0) 44 | printf("\n"); 45 | printf("%6d",b[i/q][i%q]); 46 | } 47 | printf("\nMatrix C : "); 48 | for (i = 0; i < m*q; i++){ 49 | if (i%q == 0) 50 | printf("\n"); 51 | printf("%6d", c[i/q][i%q]); 52 | } 53 | } 54 | _getch(); 55 | } 56 | 57 | -------------------------------------------------------------------------------- /2nd Semester Programs/Matrix_Printing.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(){ 5 | 6 | int a[100][100]; 7 | int m, n; 8 | printf("Enter M x N :"); 9 | scanf("%d%d", &m, &n); 10 | printf("\nEnter the Matrix elements : "); 11 | for (int i = 0; i < m*n; i++) 12 | scanf("%d", &a[i / n][i%n]); 13 | printf("\nThe Matrix elements are : \n"); 14 | for (int i = 0; i < m*n; i++){ 15 | if (i % n == 0) 16 | printf("\n"); 17 | printf("%d ", a[i / n][i%n]); 18 | 19 | } 20 | 21 | 22 | for (int i = 0; i <255;i++) 23 | printf("\n%d = %c ",i,i); 24 | _getch(); 25 | for (int i = 0; i < m*n; i++) 26 | printf("%d ", a[i / n][i%n]); 27 | 28 | } 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /2nd Semester Programs/Maximum_of_2_Numbers.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | int a, b; 6 | printf("Enter 2 Numbers :"); 7 | scanf("%d %d",&a,&b); 8 | if (a>b) 9 | printf("%d is greater than %d",a,b); 10 | else 11 | printf("%d is greater than %d",b,a); 12 | _getch(); 13 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Multipliaction_Tables.cpp: -------------------------------------------------------------------------------- 1 | /*Shortest Code for Multiplication Tables*/ 2 | #include 3 | #include 4 | void main(){ 5 | 6 | int n,i=scanf("%d",&n)-1; 7 | while(++i<11)printf("%dx%d=%d\n",n,i,n*i); 8 | 9 | 10 | _getch(); 11 | } 12 | /*End of program 13 | -------------------------------------------------------------------------------- /2nd Semester Programs/Parallel_Array_Addiion.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main(){ 7 | 8 | int n = 20000, c = 0,i; 9 | clock_t t = clock(); 10 | for (int j = 2; j < n; j++){ 11 | int d = 0; 12 | #pragma omp parallel for 13 | for (i = 2; i < j; i++){ 14 | 15 | if (j%i == 0) 16 | d++; 17 | } 18 | if (d == 0) 19 | c++; 20 | } 21 | 22 | t = clock() - t; 23 | printf("It took %d clicks\n",t); 24 | printf("There are %d primes between 2 and %d",c,n); 25 | _getch(); 26 | 27 | 28 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Quadratic_Equation.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void main(){ 6 | float root1, root2; 7 | float a, b, c; 8 | float det; 9 | printf("Enter the coefficients for a,b and c : "); 10 | scanf("%f %f %f", &a, &b, &c); 11 | if (a*b*c == 0){ 12 | printf("Cannot solve this equation"); 13 | } 14 | else{ 15 | det = b*b - 4 * a*c; 16 | if (det == 0){ 17 | root1 = root2 = -b / (2 * a); 18 | printf("\nThe 2 roots are : %f and %f\n", root1, root2); 19 | } 20 | else if (det > 0){ 21 | root1 = (-b + sqrt(det)) / (2 * a); 22 | root2 = (-b - sqrt(det)) / (2 * a); 23 | printf("\nThe 2 roots are : %f and %f\n", root1, root2); 24 | } 25 | else{ 26 | float real,img; 27 | real = -b / (2 * a); 28 | img = sqrt(abs(det)) / (2 * a); 29 | printf("\nThe 2 roots are : %f + %fi and %f - %fi\n", real,img,real,img); 30 | } 31 | 32 | } 33 | _getch(); 34 | 35 | } -------------------------------------------------------------------------------- /2nd Semester Programs/Series_Generator.cpp: -------------------------------------------------------------------------------- 1 | /* Printing Mathematical Series*/ 2 | 3 | #include 4 | #include 5 | 6 | void main(){ 7 | int n, t; 8 | 9 | printf("Enter the Series you want to display :\n"); 10 | printf("1. Fibonacci Series\n"); 11 | printf("2. Power of 2 Series\n"); 12 | printf("3. Sum upto n Numbers\n"); 13 | printf("4. N factorial series\n"); 14 | scanf("%d", &n); 15 | printf("Upto how many terms ? : "); 16 | scanf("%d", &t); 17 | 18 | if (n == 1) 19 | { 20 | int a = 0, b = 1; 21 | printf("0, 1"); 22 | for (int i = 3; i <= t; i++){ 23 | if (a 2 | #include 3 | 4 | int main(){ 5 | 6 | int i,n, a[1000]; 7 | printf("Enter array size : "); 8 | scanf("%d",&n); 9 | printf("Enter the array : "); 10 | for (i = 0; i < n; scanf("%d", &a[i++]) ); 11 | for (i = 0; i < n; printf("%d ", a[i]*a[i++])); 12 | _getch(); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /2nd Semester Programs/Swap_2_variables.c: -------------------------------------------------------------------------------- 1 | main(){ 2 | int a = 10, b = 5; 3 | printf("a=%d b=%d\n",a,b); 4 | a^=b^=a^=b; 5 | printf("a=%d b=%d", a, b); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /2nd Semester Programs/Word_Length.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void printBinary(int n){ 5 | char bin[33]; 6 | bin[32] = '\0'; 7 | int count = sizeof(int)* 8; 8 | while (count-- > 0){ 9 | if (n & 1) 10 | bin[count] = '1'; 11 | else 12 | bin[count] = '0'; 13 | n >>= 1; 14 | } 15 | puts(bin); 16 | } 17 | 18 | 19 | void main(){ 20 | 21 | 22 | 23 | int c = 0, n = -4; 24 | printf("%d\n", n); 25 | while (c<32){ 26 | n = n >> 1; 27 | printf("%10d\t", n); 28 | printBinary(n); 29 | c++; 30 | } 31 | printf("%d",c); 32 | _getch(); 33 | 34 | 35 | 36 | } -------------------------------------------------------------------------------- /2nd Semester Programs/quicksort.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int part(int low, int high, int arr[]) 5 | { 6 | int i = low; 7 | int j = high; 8 | int pivot = arr[i]; 9 | while(ipivot); 17 | if(i>n; 48 | int arr[n]; 49 | int i; 50 | for(i=0;i>arr[i]; 53 | } 54 | quicksort(n,0,arr); 55 | i =0; 56 | for(i=0;i 2 | #include 3 | using namespace std; 4 | 5 | int main(){ 6 | 7 | int x = 10, z; 8 | z = ++x; 9 | cout< 2 | #include 3 | #include 4 | 5 | void main(){ 6 | 7 | int n, i, *A; 8 | 9 | printf("Enter the array size : "); 10 | scanf("%d", &n); 11 | 12 | A = (int*) malloc(n*sizeof(int)); //Dynamic Array.Size allocated at runtime 13 | 14 | //Reading array 'A' 15 | printf("\nEnter the elements : "); 16 | for (i = 0; i < n; i++) 17 | scanf("%d", A + i); 18 | 19 | //Printing Array 'A' 20 | printf("\nArray A : "); 21 | for (i = 0; i < n; i++) 22 | printf("%d ", *(A + i)); 23 | 24 | _getch(); 25 | } 26 | 27 | /* 28 | Output : 29 | --------------------- 30 | Enter the array size : 5 31 | 32 | Enter the elements : 1 3 5 2 4 33 | 34 | Array A : 1 3 5 2 4 35 | 36 | */ -------------------------------------------------------------------------------- /3rd Semester Programs/Friend_Function.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | 12 | 13 | class complex{ 14 | 15 | int a,b; 16 | public: friend void disp(complex); 17 | 18 | complex(int x,int y){ 19 | a = x; 20 | b = y; 21 | } 22 | ~complex(){ 23 | cout << "Destroying number " << a << "+ i " << b< 2 | #include 3 | 4 | using namespace std; 5 | 6 | int area(int s){ 7 | return s*s; 8 | } 9 | 10 | int area(float r){ 11 | return 3.14159*r*r; 12 | } 13 | 14 | int main(){ 15 | 16 | int l, h, r; 17 | cout << "Enter side : "; 18 | cin >> l; 19 | cout << "Area of Square = " << area(l,); 20 | cout << "\n\nEnter raduis : "; 21 | cin >> r; 22 | cout << "Area of Circle = " << area(r); 23 | _getch(); 24 | return 0; 25 | } 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /3rd Semester Programs/HackerEarth_Amazing_Test.cpp: -------------------------------------------------------------------------------- 1 | 2 | //http://www.hackerearth.com/webengage-hiring-challenge-1/algorithm/amazing-test/ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | using namespace std; 13 | 14 | #define sp system("pause") 15 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 16 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 17 | #define REP(i,n) FOR(i,0,(int)n-1) 18 | #define MS0(x) memset(x,0,sizeof(x)) 19 | #define MS1(x) memset(x,1,sizeof(x)) 20 | #define ll long long 21 | #define MOD 1000000007 22 | 23 | int compare(const void* a, const void *b){ 24 | return *(ll int*)b - *(ll int*)a; 25 | } 26 | int main(){ 27 | 28 | int t, n, x, r1 = 0, r2 = 0; 29 | 30 | scanf("%d", &t); 31 | REP(tc, t){ 32 | int a[100]; 33 | scanf("%d%d", &n, &x); 34 | REP(i, n) 35 | scanf("%d", &a[i]); 36 | 37 | qsort(a, n, sizeof(int), compare); 38 | 39 | REP(i, n){ 40 | if (r1x || r2>x ? "NO" : "YES"); 47 | r1 = r2 = 0; 48 | } 49 | 50 | return 0; 51 | } 52 | 53 | //Partially Solved 40/100 -------------------------------------------------------------------------------- /3rd Semester Programs/HackerEarth_Number_of_Intrest_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | using namespace std; 10 | 11 | #define sp system("pause") 12 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 13 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 14 | #define REP(i,n) FOR(i,0,(int)n-1) 15 | #define MS0(x) memset(x,0,sizeof(x)) 16 | #define MS1(x) memset(x,1,sizeof(x)) 17 | #define ll long long 18 | #define MOD 1000000007 19 | 20 | int isPrime(int x){ 21 | if (x<2) 22 | return 0; 23 | else if (x == 2) 24 | return 1; 25 | int lim = sqrt(x); 26 | FOR(i, 2, lim) 27 | if (x%i == 0) 28 | return 0; 29 | return 1; 30 | } 31 | 32 | 33 | 34 | int main(){ 35 | 36 | int t, n; 37 | ll int sum; 38 | ll int f[1001], g[1001]; 39 | f[0] = f[1] = g[0] = g[1] = 0; 40 | 41 | FOR(i, 2, 1000){ 42 | int found = 0; 43 | sum = 0; 44 | FOR(j, 2, sqrt(i)){ 45 | if (i%j == 0){ 46 | sum += j; 47 | if (!found && isPrime(j)){ 48 | f[i] = f[i - 1] + j; 49 | found = 1; 50 | } 51 | } 52 | } 53 | if (!found && isPrime(i)) 54 | f[i] = f[i - 1] + i; 55 | g[i] = g[i - 1] + sum; 56 | } 57 | REP(i, 100){ 58 | cout << " " << f[i]; 59 | } 60 | cout << endl; 61 | REP(i, 100){ 62 | cout << " " << g[i]; 63 | } 64 | scanf("%d", &t); 65 | REP(tc, t){ 66 | 67 | } 68 | return 0; 69 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Hash_Function.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | struct Employee { 5 | int id; // 4 Digit Unique Key 6 | char name[10]; 7 | }; 8 | 9 | struct HashEntry { 10 | int isOccupied; 11 | int key; 12 | char name[10]; 13 | }; 14 | 15 | HashEntry table[100]; // Our hash table with 100 memory locations 16 | 17 | // A simple modulo hash function 18 | int getHashKey(Employee emp) { 19 | return emp.id % 100; 20 | } 21 | 22 | // Inserts a record into our global hashtable. 23 | void insert(Employee emp) { 24 | 25 | int i, hashkey = getHashKey(emp); 26 | 27 | if (table[hashkey].isOccupied == false) { // If key is not occupied then insert it into that key position 28 | table[hashkey].isOccupied = true; 29 | strcpy(table[hashkey].name, emp.name); 30 | printf("Inserted %10s at %2d\n\n\n", emp.name, hashkey); 31 | } 32 | else { // If key is occupied look for next nearest empty entry a.k.a. Linear Probing 33 | printf("Hash Colission. [ %4d ]\n\n", emp.id); 34 | printf("KeyValue of %2d is occupied by %10s\n\n", hashkey, table[hashkey].name); 35 | 36 | for (i = hashkey+1; i != hashkey ; i=(i+1)%100) { 37 | if (table[i].isOccupied == false){ 38 | table[i].isOccupied = true; 39 | strcpy(table[i].name, emp.name); 40 | printf("Inserted %10s at %2d\n\n\n", emp.name, i); 41 | break; 42 | } 43 | else { 44 | printf("KeyValue of %2d is occupied by %10s\n\n", i, table[i].name); 45 | } 46 | } 47 | 48 | if (i==hashkey) { 49 | printf("Hash Table is full.\n"); 50 | } 51 | } 52 | 53 | } 54 | 55 | int main() { 56 | 57 | 58 | Employee emp_array[] = 59 | { 60 | { 1111, "Akshay"}, 61 | { 2222, "Meghana" }, 62 | { 3333, "Anagha" }, 63 | { 4444, "Aishwarya" }, 64 | { 1122, "Nidhi" }, 65 | { 1144, "Kiran" }, 66 | { 5522, "Smith" } 67 | }; 68 | 69 | 70 | for (int i = 0; i< 7; i++) { 71 | insert(emp_array[i]); 72 | } 73 | 74 | getchar(); 75 | return 0; 76 | 77 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Date.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int a[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, }; 7 | int b[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, }; 8 | 9 | class date { 10 | int dd, mm, yy, day; 11 | public: date(int d, int m, int y){ 12 | day = dd = d; 13 | mm = m; 14 | yy = y; 15 | for (int i = 1; i < m; i++) 16 | day += y % 4 ? a[i] : b[i]; 17 | } 18 | 19 | friend ostream & operator << (ostream&, date); 20 | int operator - (date); 21 | date operator +(int); 22 | 23 | }; 24 | 25 | int date::operator - (date d2){ 26 | 27 | int res = 0, i; 28 | for (i = d2.yy; i < yy;i++) 29 | res += i%4?365:366; 30 | return res + day - d2.day; 31 | 32 | } 33 | 34 | ostream& operator << (ostream &out, date d){ 35 | out << d.dd << "/" << d.mm << "/" << d.yy; 36 | return out; 37 | } 38 | 39 | date date::operator+(int n){ 40 | 41 | for (int i = 0; i < n; i++){ 42 | dd++; 43 | if ((yy % 4 == 0 && dd>b[mm]) || (yy%4 && dd > a[mm]) ){ 44 | dd = 1; 45 | if (++mm > 12){ 46 | mm = 1; 47 | ++yy; 48 | } 49 | } 50 | } 51 | date temp(dd, mm, yy); 52 | return temp; 53 | 54 | } 55 | 56 | void main(){ 57 | 58 | int d, m, y, add; 59 | cout << "Enter a date : "; 60 | cin >> d >> m >> y; 61 | date d1(d, m, y); 62 | cout << "Enter a lesser date : "; 63 | cin >> d >> m >> y; 64 | date d2(d, m, y); 65 | cout << "The 1st date is : " << d1 << endl; 66 | cout << "The 2nd date is : " << d2 << endl; 67 | cout << "No od days between the 2 dates : " << d1 - d2 << endl; 68 | cout << "\nEnter a number to add to 1st date : "; 69 | cin >> add; 70 | cout << "The new date is " << (d1 + add) << endl; 71 | _getch(); 72 | 73 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Employee_Class.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | class Employee { 7 | float no, salary, allowances, IT, net_salary; 8 | char name[100]; 9 | public: void readEmp(); 10 | void printData(); 11 | void calculate(); 12 | }; 13 | 14 | void Employee::readEmp(){ 15 | cout << "\n\nEnter the following details \nName :"; 16 | cin >> name; 17 | cout << "Number : "; 18 | cin >> no; 19 | cout << "Salary : "; 20 | cin >> salary; 21 | } 22 | void Employee::calculate(){ 23 | allowances = 1.25*salary; 24 | IT = (allowances + salary)*0.3; 25 | net_salary = salary + allowances - IT; 26 | } 27 | 28 | void Employee::printData(){ 29 | cout << "\nHello " << name << ", here are your details :\n"; 30 | cout << " Number : " << no << endl; 31 | cout << "Salary : Rs." << salary << endl; 32 | cout << "Allowances : Rs." << allowances << endl; 33 | cout << "Income Tax : Rs." << IT << endl; 34 | cout << "Net Salary : Rs." << net_salary << endl; 35 | } 36 | 37 | int main(){ 38 | 39 | Employee e1, e2; 40 | //Employee 1 41 | e1.readEmp(); 42 | e1.calculate(); 43 | e1.printData(); 44 | //Employee 2 45 | e2.readEmp(); 46 | e2.calculate(); 47 | e2.printData(); 48 | _getch(); 49 | return 0; 50 | } 51 | 52 | /* 53 | Output : 54 | --------------------------------------------------------- 55 | Enter the following details 56 | Name :Akshay 57 | Number : 09 58 | Salary : 500000 59 | 60 | Hello Akshay, here are your details : 61 | Number : 9 62 | Salary : Rs.500000 63 | Allowances : Rs.625000 64 | Income Tax : Rs.337500 65 | Net Salary : Rs.787500 66 | 67 | 68 | Enter the following details 69 | Name :Aradhya 70 | Number : 10 71 | Salary : 100 72 | 73 | Hello Aradhya, here are your details : 74 | Number : 10 75 | Salary : Rs.100 76 | Allowances : Rs.125 77 | Income Tax : Rs.67.5 78 | Net Salary : Rs.157.5 79 | 80 | */ 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Infix_to_Postfix.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int top = -1; 6 | char stack[50]; 7 | 8 | void push(char e){ 9 | stack[++top] = e; 10 | } 11 | 12 | char pop(){ 13 | return stack[top--]; 14 | } 15 | 16 | int precedence(char c){ 17 | switch (c){ 18 | case '#': 19 | return 0; 20 | case '(': 21 | return 1; 22 | case '+': 23 | case '-': 24 | return 2; 25 | case '*': 26 | case '/': 27 | return 3; 28 | } 29 | } 30 | 31 | void main(){ 32 | 33 | int i,j; 34 | char infix[50], postfix[50],ch; 35 | printf("Enter an Infix Expression : "); 36 | scanf("%s", infix); 37 | push('#'); 38 | for (j=i=0; infix[i]; i++){ 39 | ch = infix[i]; 40 | if (isalnum(ch)){ 41 | postfix[j++] = ch; 42 | } 43 | else if(ch==')'){ 44 | while (stack[top] != '(') 45 | postfix[j++] = pop(); 46 | pop(); 47 | } 48 | else if (ch == '('){ 49 | push(ch); 50 | } 51 | else{ 52 | while (precedence(stack[top]) >= precedence(ch)) 53 | postfix[j++] = pop(); 54 | push(ch); 55 | } 56 | } 57 | while (top) 58 | postfix[j++] = pop(); 59 | postfix[j++] = '\0'; 60 | printf("The Postfix expression is : %s", postfix); 61 | _getch(); 62 | } 63 | -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Linked_List.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | struct NOD { 8 | int info; 9 | struct NOD *next; 10 | }; 11 | 12 | typedef struct NOD node; 13 | 14 | class LinkList { 15 | node *f; 16 | public: LinkList(){ 17 | f = NULL; 18 | } 19 | void insert(int); 20 | void del(); 21 | void disp(); 22 | }; 23 | 24 | void LinkList::insert(int num){ 25 | node *p = new node; 26 | p->info = num; 27 | p->next = f; 28 | f = p; 29 | } 30 | 31 | 32 | void LinkList::del(){ 33 | node *temp = f; 34 | if (f == NULL) 35 | cout << "\nList is Empty\n"; 36 | else { 37 | cout << "\nThe deleted element is :" << f->info<<"\n"; 38 | f = f->next; 39 | delete temp; 40 | } 41 | } 42 | 43 | void LinkList::disp(){ 44 | node *temp = f; 45 | if (f == NULL) 46 | cout << "\nList is Empty\n"; 47 | else { 48 | cout << "\nThe elements in the List are :"; 49 | while (temp != NULL){ 50 | cout <<" "<< temp->info; 51 | temp = temp->next; 52 | } 53 | cout << endl; 54 | } 55 | } 56 | 57 | int main(){ 58 | int num, ch = 1; 59 | LinkList list; 60 | cout << " ~~~~~ LINKED LIST ~~~~~ \n"; 61 | cout << " ----- MENU ----- \n"; 62 | cout << "1.Insert\n" << "2.Delete\n" << "3.Display\n" << "4.Exit\n"; 63 | 64 | while (ch){ 65 | cout << "\nEnter your choice : "; 66 | cin >> ch; 67 | switch (ch) 68 | { 69 | case 1 : 70 | cout << "Enter the element : "; 71 | cin >> num; 72 | list.insert(num); 73 | break; 74 | case 2 : 75 | list.del(); 76 | break; 77 | case 3 : 78 | list.disp(); 79 | break; 80 | case 4 : 81 | exit(0); 82 | default: 83 | cout << "\nInvalid choice\n"; 84 | } 85 | } 86 | } 87 | 88 | /* 89 | Output : 90 | ------------------------------------------- 91 | ~~~~~ LINKED LIST ~~~~~ 92 | ----- MENU ----- 93 | 1.Insert 94 | 2.Delete 95 | 3.Display 96 | 4.Exit 97 | 98 | Enter your choice : 1 99 | Enter the element : 10 100 | 101 | Enter your choice : 1 102 | Enter the element : 20 103 | 104 | Enter your choice : 1 105 | Enter the element : 30 106 | 107 | Enter your choice : 3 108 | 109 | The elements in the List are : 30 20 10 110 | 111 | Enter your choice : 2 112 | 113 | The deleted element is :30 114 | 115 | Enter your choice : 2 116 | 117 | The deleted element is :20 118 | 119 | Enter your choice : 2 120 | 121 | The deleted element is :10 122 | 123 | Enter your choice : 2 124 | 125 | List is Empty 126 | 127 | Enter your choice : 5 128 | 129 | Invalid choice 130 | 131 | Enter your choice : 4 132 | 133 | */ 134 | 135 | -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Queue_of_Arrays.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define MAX 5 5 | 6 | int queue[MAX]; 7 | int rear = -1, front = -1; 8 | 9 | void insert(); 10 | void del(); 11 | void display(); 12 | 13 | void main(){ 14 | 15 | int choice, run = 1; 16 | printf("\n~~~~~ MENU ~~~~~ \n"); 17 | printf("1.Insert\n"); 18 | printf("2.Delete\n"); 19 | printf("3.Display\n"); 20 | printf("4.Exit\n"); 21 | while (run){ 22 | printf("\nEnter your choice :"); 23 | scanf("%d", &choice); 24 | switch (choice) 25 | { 26 | case 1: 27 | insert(); 28 | break; 29 | case 2: 30 | del(); 31 | break; 32 | case 3: 33 | display(); 34 | break; 35 | case 4: 36 | run = 0; 37 | break; 38 | default: 39 | printf("Invalid Choice\n"); 40 | } 41 | } 42 | } 43 | 44 | void insert(){ 45 | 46 | int item; 47 | if (rear == MAX - 1) 48 | printf("\n ~~~ Queue is Full ~~~ \n"); 49 | else{ 50 | if (front == -1) 51 | front++; 52 | printf("\nInsert the item :"); 53 | scanf("%d", &item); 54 | queue[++rear] = item; 55 | } 56 | 57 | } 58 | 59 | void del(){ 60 | 61 | if (front == -1 || front>rear) 62 | printf("\n ~~~ Queue is Empty ~~~ \n"); 63 | else 64 | printf("\nElement %d has been deleted\n",queue[front++]); 65 | } 66 | 67 | void display(){ 68 | 69 | if (front == -1 || front>rear) 70 | printf("\n ~~~ Queue is Empty ~~~ \n"); 71 | else{ 72 | printf("\nElements in the queue are :"); 73 | for (int i = front; i <= rear; i++) 74 | printf(" %d,", queue[i]); 75 | printf("\b\n"); 76 | } 77 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_Sparse_Matrix.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define MAX 20 5 | 6 | typedef struct { 7 | int row, col, val; 8 | }terms; 9 | 10 | terms a[MAX]; 11 | 12 | void search(int key, int c); 13 | 14 | void main(){ 15 | int i, j, count = 0, key, m, n, index=1; 16 | int SM[MAX][MAX]; 17 | 18 | //Reading the Dimensions 19 | printf("Enter the rows and columns : "); 20 | scanf("%d%d", &n, &m); 21 | 22 | //Reading Sparse Matrix 23 | printf("\nEnter the elements :\n"); 24 | for (i=0; i 2 | #include 3 | 4 | using namespace std; 5 | 6 | class Stack { 7 | int items[99], top, size; 8 | public: Stack(int n){ 9 | top = -1; 10 | size = n; 11 | } 12 | friend Stack operator +(Stack, int); 13 | friend Stack operator --(Stack); 14 | friend ostream& operator << (ostream&, Stack); 15 | }; 16 | 17 | Stack operator +(Stack s, int num){ 18 | if (s.top == s.size - 1) 19 | cout << "Stack is full" << endl; 20 | else 21 | s.items[++s.top] = num; 22 | return s; 23 | } 24 | 25 | Stack operator -- (Stack s){ 26 | if (s.top == -1) 27 | cout << "Stack is Empty" << endl; 28 | else 29 | cout << "The deleted element is " << s.items[s.top--] << endl; 30 | return s; 31 | } 32 | 33 | ostream& operator <<(ostream& print, Stack s){ 34 | if (s.top == -1) 35 | print << "Stack is Empty" << endl; 36 | else { 37 | print << "The Stack is : "; 38 | for (int i = s.top; i >= 0; i--) 39 | print << s.items[i] << " "; 40 | cout << endl; 41 | } 42 | return print; 43 | } 44 | 45 | int main(){ 46 | int num, ch = 1, n; 47 | cout << "Enter the size of the stack : "; 48 | cin >> n; 49 | Stack s(n); 50 | cout << "\n ~~~~ STACK ~~~~ \n"; 51 | cout << "1.Push\n"; 52 | cout << "2.Pop\n"; 53 | cout << "3.Display\n"; 54 | cout << "4.Exit\n"; 55 | while (ch){ 56 | cout << "\nEnter your choice : "; 57 | cin >> ch; 58 | switch (ch){ 59 | case 1: 60 | cout << "Enter the item : "; 61 | cin >> num; 62 | s = s + num; 63 | break; 64 | case 2: 65 | s = s--; 66 | break; 67 | case 3: 68 | cout << s; 69 | break; 70 | case 4: 71 | ch = 0; 72 | break; 73 | default: 74 | cout << "Invalid Choice\n"; 75 | break; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /3rd Semester Programs/Lab_String_Concatination.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | class STRING { 7 | char name[100]; 8 | public: STRING(){ 9 | name[0] = '\0'; 10 | } 11 | STRING(char s[]){ 12 | strcpy(name, s); 13 | } 14 | STRING(STRING &s){ 15 | strcpy(name, s.name); 16 | } 17 | friend STRING operator + (STRING, STRING); 18 | friend ostream& operator << (ostream&, STRING&); 19 | }; 20 | 21 | ostream& operator << (ostream& out, STRING &s){ 22 | out << s.name; 23 | return out; 24 | } 25 | 26 | STRING operator + (STRING s1, STRING s2){ 27 | STRING t(s1); 28 | strcat(t.name, s2.name); 29 | return t; 30 | } 31 | 32 | int main(){ 33 | STRING s1("VTU"), s2("BELGAUM"); 34 | STRING s3 = s1 + s2; 35 | cout << "S1 = " << s1 << endl; 36 | cout << "S2 = " << s2 << endl; 37 | cout << "S3 = " << s3 << endl; 38 | _getch(); 39 | return 0; 40 | } 41 | 42 | 43 | -------------------------------------------------------------------------------- /3rd Semester Programs/Maze_Problem_using_Stacks.c: -------------------------------------------------------------------------------- 1 | 2 | // Data Structures in C - Horowitz 3 | //Page no. 120 4 | //Added a little twist, instead od 8 possible directions I have restricted it to only 4 N,E,S & W 5 | 6 | #include 7 | 8 | struct cell { 9 | int row; 10 | int col; 11 | int dir; 12 | }; 13 | 14 | struct offset { 15 | int vert; 16 | int hori; 17 | }; 18 | 19 | struct cell stack[1000]; 20 | int top = -1; 21 | struct offset move[4]; 22 | 23 | int maze[100][100]; 24 | int mark[100][100]; 25 | int r, c; 26 | 27 | struct cell pop(){ 28 | 29 | if (top >= 0) 30 | return stack[top--]; 31 | } 32 | 33 | void push(struct cell x){ 34 | 35 | stack[++top] = x; 36 | 37 | } 38 | 39 | void path(int exit_row,int exit_col){ 40 | 41 | int row, col, nextrow, nextcol, dir, found = 0; 42 | struct cell position; 43 | 44 | stack[0].row = 1; 45 | stack[0].col = 1; 46 | stack[0].dir = 1; 47 | top = 0; 48 | mark[1][1] = 1; 49 | 50 | while (top > -1 && !found){ 51 | position = pop(); 52 | row = position.row; 53 | col = position.col; 54 | dir = position.dir; 55 | int pushed = 0; 56 | while (dir < 4 && !found){ 57 | nextrow = row + move[dir].vert; 58 | nextcol = col + move[dir].hori; 59 | if (nextrow == exit_row && nextcol == exit_col) 60 | found = 1; 61 | else if (maze[nextrow][nextcol] && mark[nextrow][nextcol] == 0){ 62 | if (!pushed){ 63 | position.dir = ++dir; 64 | push(position); 65 | pushed = 1; 66 | } 67 | position.row = nextrow; 68 | position.col = nextcol; 69 | position.dir = 0; 70 | push(position); 71 | mark[nextrow][nextcol] = 1; 72 | row = nextrow; 73 | col = nextcol; 74 | dir = 0; 75 | } 76 | else 77 | dir++; 78 | } 79 | } 80 | 81 | if (found){ 82 | printf("The path is :\n"); 83 | printf("Row Col\n"); 84 | for (int i = 0; i <= top; i++) 85 | printf("%3d %3d\n", stack[i].row, stack[i].col); 86 | printf("%3d %3d\n", row, col); 87 | printf("%3d %3d\n", exit_row, exit_col); 88 | } 89 | else 90 | printf("The maze dosent have a path\n"); 91 | 92 | } 93 | 94 | void initmoves(){ 95 | // Up 96 | move[0].vert = -1; 97 | move[0].hori = 0; 98 | // Right 99 | move[1].vert = 0; 100 | move[1].hori = 1; 101 | // Down 102 | move[2].vert = 1; 103 | move[2].hori = 0; 104 | // Left 105 | move[3].vert = 0; 106 | move[3].hori = -1; 107 | } 108 | 109 | 110 | void main(){ 111 | 112 | initmoves(); 113 | int n, m,i,j; 114 | printf("Enter the row and columns for the maze : "); 115 | scanf("%d%d", &r, &c); 116 | printf(" "); 117 | for (i = 0; i < c; i++) 118 | printf("%2d", i); 119 | printf("\n"); 120 | for (i = 0; i < r; i++){ 121 | printf("%2d ", i); 122 | for (j = 0; j < c; j++) 123 | scanf("%d", &maze[i][j]); 124 | } 125 | printf("\nEnter point is defaulted to 1,1\n"); 126 | printf("\nEnter the exit point : "); 127 | scanf("%d%d", &n, &m); 128 | path(n, m); 129 | system("pause"); 130 | 131 | 132 | 133 | } 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /3rd Semester Programs/Operator_Overloading.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | class loc{ 7 | 8 | int lat, lon; 9 | 10 | public: loc(){} 11 | 12 | loc(int x, int y){ 13 | lat = x; 14 | lon = y; 15 | } 16 | 17 | friend loc operator+(loc l1,loc l2){ 18 | loc temp; 19 | temp.lat = l1.lat + l2.lat; 20 | temp.lon = l1.lon + l2.lon; 21 | return temp; 22 | } 23 | 24 | void show(){ 25 | cout << lat << " " << lon< 2 | #include 3 | 4 | void main(){ 5 | int a = 10, b = 5; 6 | int *i, *j; 7 | j = &a; 8 | printf("\nJ = %p pointer", j); 9 | printf("\nJ = %d integer", j); 10 | printf("\nValue at j = %d\n", *j); 11 | j++; 12 | printf("\nJ = %p pointer", j); 13 | printf("\nJ = %d integer", j); 14 | printf("\nValue at j = %d", *j); 15 | _getch(); 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /3rd Semester Programs/Polynomial_as_Circular_Linked_List.cpp: -------------------------------------------------------------------------------- 1 | Rules : 2 | 3 | Games less than 30 minutes count as half a game. 4 | 5 | College Days 6 | Maximum of 3 Games a Day 7 | Quit after 1 loss. 8 | If all 3 are wins you get an Extra Game 9 | 10 | Holidays 11 | Maximum of 5 Games a Day 12 | Quit after 2 losses. 13 | If all 5 are wins you get an Extra Game -------------------------------------------------------------------------------- /3rd Semester Programs/Stack_Operations.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #define MAX 3 4 | 5 | int stack[MAX]; 6 | int top = -1; 7 | 8 | 9 | void pop(){ 10 | if (top == -1) 11 | printf("Stack Underflow\n"); 12 | else 13 | printf("Poping %d\n", stack[top--]); 14 | } 15 | 16 | void push(int e){ 17 | 18 | if (top < MAX-1) 19 | stack[++top] = e; 20 | else 21 | printf("Stack Overflow\n"); 22 | 23 | } 24 | 25 | void display(){ 26 | 27 | int i; 28 | if (top == -1) 29 | printf("Stack is empty\n"); 30 | else{ 31 | printf("The Stack is : "); 32 | for (i = 0; i <= top;) 33 | printf("%d ",stack[i++]); 34 | printf("\n"); 35 | } 36 | } 37 | 38 | void main(){ 39 | 40 | int n, ch; 41 | 42 | printf("1.Pop\n2.Push\n3.Display\n4.Exit\n"); 43 | while (1){ 44 | printf("\nEnter your choice : "); 45 | scanf("%d", &ch); 46 | switch (ch){ 47 | 48 | case 1: 49 | pop(); 50 | break; 51 | case 2: 52 | printf("Enter item : "); 53 | scanf("%d", &n); 54 | push(n); 55 | break; 56 | case 3: 57 | display(); 58 | break; 59 | case 4: 60 | exit(0); 61 | default: 62 | printf("Invalid Choice\n"); 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Stack_Operations_Dynamic.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | int *stack; 6 | int top = -1; 7 | int size = 0; 8 | 9 | void pop(){ 10 | if (top == -1) 11 | printf("Stack Underflow\n"); 12 | else 13 | printf("Poping %d\n", stack[top--]); 14 | } 15 | 16 | void push(int e){ 17 | 18 | if (top == size - 1){ 19 | printf("Stack Overflow.Increasing stack size\n"); 20 | stack = (int*)realloc(stack,++size*sizeof(int)); 21 | } 22 | stack[++top] = e; 23 | } 24 | 25 | void display(){ 26 | 27 | int i; 28 | if (top == -1) 29 | printf("Stack is empty\n"); 30 | else{ 31 | printf("The Stack is : "); 32 | for (i = 0; i <= top;) 33 | printf("%d ",stack[i++]); 34 | printf("\n"); 35 | } 36 | } 37 | 38 | void main(){ 39 | 40 | int e, ch; 41 | 42 | stack = (int*)malloc(++size*sizeof(int)); 43 | 44 | printf("1.Pop\n2.Push\n3.Display\n4.Exit\n"); 45 | 46 | while (1){ 47 | printf("\nEnter your choice : "); 48 | scanf("%d", &ch); 49 | switch (ch){ 50 | 51 | case 1: 52 | pop(); 53 | break; 54 | case 2: 55 | printf("Enter item : "); 56 | scanf("%d", &e); 57 | push(e); 58 | break; 59 | case 3: 60 | display(); 61 | break; 62 | case 4: 63 | exit(0); 64 | default: 65 | printf("Invalid Choice\n"); 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /3rd Semester Programs/Stack_using_Linked_List.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | struct node { 7 | int data; 8 | struct node *link; 9 | }; 10 | 11 | typedef struct node* NODE; 12 | 13 | NODE getNewNode(){ 14 | 15 | NODE temp = (NODE)malloc(sizeof(struct node)); 16 | if (temp == NULL){ 17 | printf("Insufficient Memory"); 18 | exit(0); 19 | } 20 | return temp; 21 | } 22 | 23 | NODE push(NODE head, int ele){ 24 | 25 | NODE temp = getNewNode(); 26 | temp->data = ele; 27 | temp->link = NULL; 28 | if (head==NULL){ 29 | return temp; 30 | } 31 | temp->link = head; 32 | return temp; 33 | 34 | } 35 | 36 | NODE pop(NODE head){ 37 | 38 | NODE temp = head; 39 | if (head == NULL){ 40 | printf("Stack is Empty\n"); 41 | return head; 42 | } 43 | head = head->link; 44 | printf("Deleting %d\n", temp->data); 45 | free(temp); 46 | return head; 47 | 48 | } 49 | 50 | void display(NODE head){ 51 | 52 | 53 | NODE temp = head; 54 | if (head == NULL){ 55 | printf("Stack is Empty\n"); 56 | return; 57 | } 58 | printf("The stack is :"); 59 | while (temp != NULL){ 60 | printf("%d ", temp->data); 61 | temp = temp->link; 62 | } 63 | printf("\n"); 64 | 65 | } 66 | 67 | void main(){ 68 | 69 | NODE head = NULL; 70 | int n, ch; 71 | 72 | printf("1.Pop\n2.Push\n3.Display\n4.Exit\n"); 73 | while (1){ 74 | printf("\nEnter your choice : "); 75 | scanf("%d", &ch); 76 | switch (ch){ 77 | 78 | case 1: 79 | head = pop(head); 80 | break; 81 | case 2: 82 | printf("Enter item : "); 83 | scanf("%d", &n); 84 | head = push(head,n); 85 | break; 86 | case 3: 87 | display(head); 88 | break; 89 | case 4: 90 | exit(0); 91 | default: 92 | printf("Invalid Choice\n"); 93 | } 94 | } 95 | } 96 | 97 | -------------------------------------------------------------------------------- /3rd Semester Programs/String_Palindrome_using_Stack.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #define MAX 100 4 | 5 | char stack[MAX]; 6 | int top = -1; 7 | 8 | int palindrome(char s[]){ 9 | 10 | int i=0; 11 | while (s[i]) 12 | stack[++top] = s[i++]; 13 | 14 | i = 0; 15 | while (s[i]) 16 | if (s[i++] != stack[top--]) 17 | return 0; 18 | 19 | return 1; 20 | 21 | } 22 | 23 | void main(){ 24 | 25 | char s[100]; 26 | printf("Enter the string : "); 27 | scanf("%s",s); 28 | if (palindrome(s)) 29 | puts("String is Palindrome"); 30 | else 31 | puts("String is not Palindrome"); 32 | 33 | _getch(); 34 | 35 | } -------------------------------------------------------------------------------- /3rd Semester Programs/TIme_Class.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | class TIME{ 7 | int ss, mm, hh; 8 | 9 | public: TIME(){} // Default Empty Constructor 10 | 11 | TIME(int s,int m,int h){ // Constructor with Parameters 12 | ss = s; 13 | mm = m; 14 | hh = h; 15 | } 16 | 17 | void read(){ 18 | cout << "Enter hours :"; 19 | cin >> hh; 20 | cout << "Enter minutes :"; 21 | cin >> mm; 22 | cout << "Enter seconds :"; 23 | cin >> ss; 24 | } 25 | 26 | void display(){ 27 | cout <<"Time is : " << hh << ":" << mm << ":" << ss << endl< 5 | #include 6 | #include 7 | #define MAX 100 8 | 9 | using namespace std; 10 | 11 | struct item{ 12 | int p, w; 13 | float ratio; 14 | }; 15 | 16 | bool compare(item lhs, item rhs){ 17 | return lhs.ratio > rhs.ratio; 18 | } 19 | 20 | float Knapsack(item a[MAX], int m,int n){ 21 | 22 | float profit = 0; 23 | 24 | sort(a, a + n, compare); 25 | for (int i = 0; m && i> n; 45 | 46 | cout << "Enter profit of each item :\n"; 47 | for (i = 0; i < n; i++) 48 | cin >> a[i].p; 49 | 50 | cout << "Enter weight of each item :\n"; 51 | for (i = 0; i < n; i++){ 52 | cin >> a[i].w; 53 | a[i].ratio = (float)a[i].p / a[i].w; 54 | } 55 | 56 | cout << "Enter total capacity : "; 57 | cin >> m; 58 | 59 | cout << "The maximum profit is : " << Knapsack(a, m, n) << endl; 60 | 61 | _getch(); 62 | return 0; 63 | } 64 | 65 | /* 66 | OUTPUT : 67 | -------- 68 | Enter no. of items : 5 69 | Enter profit of each item : 70 | 20 30 66 40 60 71 | Enter weight of each item : 72 | 10 20 30 40 50 73 | Enter total capacity : 100 74 | The maximum profit is : 164 75 | 76 | */ -------------------------------------------------------------------------------- /4th Semester Programs/Lab_Knapsackcpp.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | void knapsack(int n, int m, int w[], int p[]){ 8 | 9 | int i, j, v[10][10], x[10]; 10 | for (i = 0; i <= n; i++){ 11 | for (j = 0; j <= m; j++){ 12 | if (i == 0 || j == 0) 13 | v[i][j] = 0; 14 | else if (w[i]>j) 15 | v[i][j] = v[i - 1][j]; 16 | else 17 | v[i][j] = max(v[i - 1][j], v[i - 1][j - w[i]] + p[i]); 18 | } 19 | } 20 | for (i = 0; i <= n; i++){ 21 | for (j = 0; j <= m; j++) 22 | cout << v[i][j] << " "; 23 | cout << "\n"; 24 | } 25 | 26 | cout<<"\nMaximum profit"<> n; 53 | cout << "enter the capacity of knapsack : "; 54 | cin >> m; 55 | cout << "Enter the weight of each item : "; 56 | for (i = 1; i <= n; i++) 57 | cin >> w[i]; 58 | cout << "Enter the profit of each item : "; 59 | for (i = 1; i <= n; i++) 60 | cin >> p[i]; 61 | knapsack(n, m, w, p); 62 | _getch(); 63 | } 64 | -------------------------------------------------------------------------------- /4th Semester Programs/Lab_Subset.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace std; 6 | 7 | int w[20], x[20], scount = 0, d; 8 | 9 | void subset(int s, int k,int n){ 10 | 11 | int i; 12 | x[k] = 1; 13 | if (s + w[k] == d){ 14 | scount++; 15 | cout << "Subset #" << scount << " : "; 16 | for (i = 1; i <= k; i++){ 17 | if (x[i] == 1) 18 | cout << w[i]<<", "; 19 | } 20 | cout << endl; 21 | } 22 | else if (s + w[k]<= d && k<=n) 23 | subset(s + w[k], k + 1,n); 24 | if (k <= n){ 25 | x[k] = 0; 26 | subset(s, k + 1, n); 27 | } 28 | 29 | } 30 | 31 | void main(){ 32 | 33 | int sum = 0, i, n; 34 | cout << "Enter value of n : "; 35 | cin >> n; 36 | cout << "Enter the elements : "; 37 | for (i = 1; i <= n; i++) 38 | cin >> w[i]; 39 | cout << "Enter the value to find : "; 40 | cin >> d; 41 | for (i = 1; i <= n; i++) 42 | x[i] = 0; 43 | for (i = 1; i <= n; i++) 44 | sum = sum + w[i]; 45 | if (d>sum) 46 | cout << "No solution\n"; 47 | else{ 48 | subset(0, 1,n); 49 | if (scount == 0) 50 | cout << "no solution\n"; 51 | } 52 | _getch(); 53 | 54 | } -------------------------------------------------------------------------------- /4th Semester Programs/Lab_Traveling_Salesman.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | using namespace std; 5 | #define max 100 6 | #define infinity 999999 7 | 8 | int v[max], c[max][max],tour[max], optimal = infinity,n; 9 | 10 | void tsprec(int curtour[], int u, int k, int cost){ 11 | 12 | int i; 13 | v[u] = 1; 14 | curtour[k++] = u; 15 | if (k == n && cost + c[u][0] < optimal){ 16 | optimal = cost + c[u][0]; 17 | for (i = 0; i < n; i++) 18 | tour[i] = curtour[i]; 19 | } 20 | else{ 21 | for (i = 0; i < n; i++){ 22 | if (v[i] == 0) 23 | tsprec(curtour, i, k, cost + c[u][i]); 24 | } 25 | } 26 | v[u] = 0; 27 | 28 | } 29 | 30 | int tspnn(int tour[], int start, int n){ 31 | 32 | int cost = 0, i, k = 0; 33 | tour[k] = start; 34 | v[start] = 1; 35 | while (k>n; 60 | cout<<"Enter cost matrix :\n"<>c[i][j]; 65 | c[i][j] = c[i][j] == 0 ? infinity : c[i][j]; 66 | } 67 | } 68 | 69 | tsprec(curtour,0,0,0); 70 | cout<<"\nMinimum cost using Brute-Force : "< "; 74 | cout<<"0\n"; 75 | _getch(); 76 | 77 | 78 | aproxcost = tspnn(curtour, 0, n); 79 | cout << "\nMinimum cost using Nearest Neighbour : " << aproxcost << endl; 80 | cout<<"Tour : "; 81 | for(i=0;i "; 83 | cout<<"0\n"; 84 | 85 | double relative_err=(double)(aproxcost-optimal)/optimal; 86 | cout<<"\nThe relative error : "< 7 -> 4 -> 3 -> 9 -> 5 -> 2 -> 6 -> 1 -> 10 -> 8 -> 0 116 | 117 | Minimum cost using Nearest Neighbour : 299 118 | Tour : 0 -> 8 -> 7 -> 2 -> 10 -> 1 -> 4 -> 3 -> 5 -> 9 -> 6 -> 0 119 | The relative error = 0.181818 120 | 121 | 122 | */ 123 | 124 | 125 | 126 | -------------------------------------------------------------------------------- /4th Semester Programs/Lab_Warshal_Transitive_Closure.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | 8 | void warshal(int n,int R[100][100]){ 9 | 10 | int k,i,j; 11 | 12 | for(k=0;k>n; 26 | cout<<"Enter the adjacency matrix : \n"; 27 | for(i=0;i>adj[i][j]; 30 | 31 | warshal(n,adj); 32 | 33 | cout<<"The Transitive Cosure is : \n"; 34 | for(i=0;i 2 | #include 3 | #include 4 | 5 | #define MAX 100 6 | 7 | using namespace std; 8 | 9 | void prims(int n,int adj[MAX][MAX]){ 10 | 11 | int visit[MAX], i, j, c = 0, u, v, total = 0; 12 | 13 | for (i = 1; i <= n; i++) 14 | visit[i] = 0; 15 | 16 | visit[1] = 1; 17 | c++; 18 | 19 | cout << "\n\n Edges of the minimum spanning tree are : "; 20 | 21 | while (c < n){ 22 | int min = 999; 23 | for (i = 1; i <= n; i++){ 24 | if (visit[i]){ 25 | for (j = 1; j <= n; j++){ 26 | if (visit[j] == 0 && adj[i][j] && adj[i][j] < min){ 27 | min = adj[i][j]; 28 | u = i; 29 | v = j; 30 | } 31 | } 32 | } 33 | } 34 | cout << "{" << u << "," << v << "},"; 35 | visit[v] = 1; 36 | total += min; 37 | c++; 38 | } 39 | cout << "\nMinimum cost : " << total; 40 | } 41 | 42 | int main(){ 43 | 44 | int i,j,n, adj[MAX][MAX]; 45 | 46 | printf("Enter the number of nodes : "); 47 | cin >> n; 48 | 49 | cout << "Enter adjacency matrix :\n"; 50 | for (i = 1; i <=n; i++) 51 | for (j = 1; j <=n; j++) 52 | cin >> adj[i][j]; 53 | prims(n, adj); 54 | 55 | _getch(); 56 | return 0; 57 | } -------------------------------------------------------------------------------- /5th Semester Programs/Banker's_Algorithm.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | int n, r; 8 | int all[99][99], max[99][99], need[99][99]; 9 | int res[99], avail[99]; 10 | 11 | void safe() { 12 | 13 | int i, j, k, flag=1,f[99], availcpy[99]; 14 | vector p; 15 | 16 | for (i = 1; i<=n; i++) { 17 | availcpy[i] = avail[i]; /*Make a copy of the available matrix*/ 18 | f[i] = 0; 19 | } 20 | while (flag && p.size()>p; 51 | cout<<"New Request : "; 52 | for (i = 1; i<=r; i++) { 53 | cin>>nr[i]; 54 | can = nr[i]<=avail[i] && nr[i]<=need[p][i]?1:0; /*If the new request is more than the available or t=more than what the process needs then you cannot allocate it. Invalid request*/ 55 | } 56 | if (can) { 57 | cout<<"Request within Limits\n"; 58 | for (i = 1; i<=r; i++) { 59 | all[p][i] += nr[i]; 60 | avail[i] -= nr[i]; 61 | need[p][i] -= nr[i]; /*If the new request is within limits then subtract it from the need and available matrix*/ 62 | } 63 | safe(); 64 | } 65 | else { 66 | cout<<"Invalid Request\n"; 67 | } 68 | } 69 | 70 | 71 | int main() { 72 | 73 | int i, j; 74 | cout<<"\nNo of processes : "; 75 | cin>>n; 76 | cout<<"\nNo. of resources : "; 77 | cin>>r; 78 | 79 | cout<<"\nAllocation Matrix : \n"; 80 | for (i = 1; i<=n; i++) { 81 | for (j = 1; j<=r; j++) { 82 | cin>>all[i][j]; 83 | avail[j] -= all[i][j]; 84 | } 85 | } 86 | 87 | cout<<"\nMax Matrix : \n"; 88 | for (i = 1; i<=n; i++) { 89 | for (j = 1; j<=r; j++) { 90 | cin>>max[i][j]; 91 | need[i][j] = max[i][j] - all[i][j]; 92 | } 93 | } 94 | 95 | cout<<"\nTotal Resources : "; 96 | for (i = 1; i<=r; i++) { 97 | cin>>res[i]; 98 | avail[i] += res[i]; 99 | } 100 | 101 | safe(); 102 | 103 | while (1) { 104 | int ch; 105 | cout<<"\n1.New Request\n2.Exit\nEnter your choice : "; 106 | cin>>ch; 107 | if (ch==1) 108 | req(); 109 | else 110 | break; 111 | } 112 | return 0; 113 | 114 | } -------------------------------------------------------------------------------- /5th Semester Programs/FCFS.CPP: -------------------------------------------------------------------------------- 1 | /* 2 | Written by Charu Sharma 3 | Email: charusharma2912@gmail.com 4 | */ 5 | 6 | // C++ program for implementation of FCFS 7 | // scheduling 8 | #include 9 | using namespace std; 10 | 11 | // Function to find the waiting time for all 12 | // processes 13 | void findWaitingTime(int processes[], int n, 14 | int bt[], int wt[]) 15 | { 16 | // waiting time for first process is 0 17 | wt[0] = 0; 18 | 19 | // calculating waiting time 20 | for (int i = 1; i < n ; i++ ) 21 | wt[i] = bt[i-1] + wt[i-1] ; 22 | } 23 | 24 | // Function to calculate turn around time 25 | void findTurnAroundTime( int processes[], int n, 26 | int bt[], int wt[], int tat[]) 27 | { 28 | // calculating turnaround time by adding 29 | // bt[i] + wt[i] 30 | for (int i = 0; i < n ; i++) 31 | tat[i] = bt[i] + wt[i]; 32 | } 33 | 34 | //Function to calculate average time 35 | void findavgTime( int processes[], int n, int bt[]) 36 | { 37 | int wt[n], tat[n], total_wt = 0, total_tat = 0; 38 | 39 | //Function to find waiting time of all processes 40 | findWaitingTime(processes, n, bt, wt); 41 | 42 | //Function to find turn around time for all processes 43 | findTurnAroundTime(processes, n, bt, wt, tat); 44 | 45 | //Display processes along with all details 46 | cout << "Processes "<< " Burst time " 47 | << " Waiting time " << " Turn around time\n"; 48 | 49 | // Calculate total waiting time and total turn 50 | // around time 51 | for (int i=0; iBUCKET_MAX) { 17 | printf("\nPackets discarded : %d\n", packets+bucket-BUCKET_MAX); 18 | bucket = BUCKET_MAX; 19 | } 20 | else { 21 | printf("\nNo Packet Discarded\n"); 22 | bucket += packets; 23 | } 24 | 25 | if (bucket <= FLOW_MAX) { 26 | outgoing = bucket; 27 | } 28 | else { 29 | outgoing = FLOW_MAX; 30 | printf("\nLimiting Flow\n"); 31 | } 32 | printf("\nOutgoing Packets : %d\n", outgoing); 33 | 34 | bucket -= outgoing; 35 | 36 | } 37 | 38 | return 0; 39 | } 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /C++ Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/C++ Icon.ico -------------------------------------------------------------------------------- /Code Golf/Binary_Search_Golf.c: -------------------------------------------------------------------------------- 1 | main(l,h,n,m){ 2 | int a[99];scanf("%d",&n);m=n;h=n-1; 3 | while (m--)scanf("%d", &a[m]); 4 | while (l<=h){m=(l+h)/2; 5 | if (a[m]==a[0]){printf("%d", n-m);break;} 6 | a[m]>a[0]?(l=m+1):(h=m-1);} 7 | l>h?printf("ERROR"):0;} 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Code Golf/Factorial_Golf.c: -------------------------------------------------------------------------------- 1 | 2 | main(f,n){scanf("%d",&n); 3 | while(n)f*= n--;printf("%d",f);} 4 | -------------------------------------------------------------------------------- /Code Golf/Fibonacci_CodeGolf.c: -------------------------------------------------------------------------------- 1 | a,n;main(f){scanf("%d",&n); 2 | while(n--)printf("%d",a),f+=a=f-a;} 3 | 4 | -------------------------------------------------------------------------------- /Code Golf/Fizz_Buzz_CodeGolf.c: -------------------------------------------------------------------------------- 1 | main(i){for(;i<101;puts(i++%5?"":"Buzz"))printf(i%3?i%5?"%d":"":"Fizz");} -------------------------------------------------------------------------------- /Code Golf/HackerRank_Calculate_GCD.c: -------------------------------------------------------------------------------- 1 | 2 | //https://www.hackerrank.com/contests/codeomania/challenges/calculate-gcd 3 | 4 | main(t,x,a,b){ 5 | if(a=0,scanf("%d",&t)) 6 | while(a?printf("%d\n",a):0,scanf("%d%d",&a,&b),t--)while(x=a%b,a=b,b=x); 7 | } 8 | 9 | //Score = 57.73 (Therotical Maximum) -------------------------------------------------------------------------------- /Code Golf/HackerRank_Leibniz_Code_Golf.c: -------------------------------------------------------------------------------- 1 | 2 | //https://www.hackerrank.com/challenges/leibniz 3 | 4 | main(n){double a,x;scanf("%d");for(;a=scanf("%d",&n)>0;printf("%.15f\n",a))while(x=1.0/(2*--n+1),n)a+=n%2?-x:x;} 5 | 6 | //112 Characters 7 | 8 | -------------------------------------------------------------------------------- /Code Golf/HackerRank_Reversed Number.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | //https://www.hackerrank.com/contests/codeomania/challenges/reversed-number 4 | 5 | 6 | r,n;main(a,b){for(scanf("%d%d",&a,&b);a<=b;printf("%d\n",r),r=0)for(n=a++;n;n/=10)r=r*10+n%10;} 7 | 8 | 9 | //95 Characters 10 | 11 | // Anta's Solution 12 | //a;t;main(x){scanf("%d%d",&t,&x);for(a=t-x&&main(x-1);x;x/=10)a=a*10+x%10;printf("%d\n",a);} 13 | 14 | -------------------------------------------------------------------------------- /Code Golf/Number_of_Divisors_for_a_Number.c: -------------------------------------------------------------------------------- 1 | 2 | //You have to find the number of divisors of a number. 3 | 4 | main(c){ 5 | long int n, l, i; 6 | scanf("%ld", &n); 7 | l=sqrt(n); 8 | c = 0; 9 | for(i = 1; i <= l; i++) 10 | n%i ? 0 : n / i>l ? c += 2 : c++; 11 | printf("%d\n", c); 12 | } -------------------------------------------------------------------------------- /Code Golf/Power_of_Thor.c: -------------------------------------------------------------------------------- 1 | //https://www.codingame.com/ide/14832725ac3d4398a50f9d8d8129f20bd82cc29 2 | 3 | main(a,b,x,y){for(scanf("%d%d%d%d",&a,&b,&x,&y);putchar(b>y?y++,83:bx?"E":a 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | int w, h; 40 | char s[31][31]; 41 | 42 | void bfs(point src){ 43 | 44 | int v[30][30]; 45 | MS0(v); 46 | point u=src; 47 | queue q; 48 | q.push(u); 49 | 50 | while (!q.empty()){ 51 | u = q.front(); 52 | q.pop(); 53 | if (v[u.y][u.x] == 0 && s[u.y][u.x] == '0'){ 54 | printf("%d %d ", u.x, u.y); 55 | int rn = 0; 56 | FOR(i, u.x + 1, w - 1){ 57 | if (s[u.y][i] == '0'){ 58 | printf("%d %d ", i, u.y); 59 | rn = 1; 60 | break; 61 | } 62 | } 63 | if (rn == 0) 64 | printf("-1 -1 "); 65 | 66 | int bn = 0; 67 | FOR(i, u.y + 1, h - 1){ 68 | if (s[i][u.x] == '0'){ 69 | printf("%d %d\n", u.x, i); 70 | bn = 1; 71 | break; 72 | } 73 | } 74 | if (bn == 0) 75 | printf("-1 -1\n"); 76 | v[u.y][u.x] = 1; 77 | q.push({ u.x+1, u.y }); 78 | q.push({ u.x, u.y+1 }); 79 | } 80 | else{ 81 | q.push({ u.x + 1, u.y }); 82 | q.push({ u.x, u.y + 1 }); 83 | } 84 | } 85 | 86 | } 87 | 88 | int main(){ 89 | 90 | 91 | scanf("%d%d", &w, &h); 92 | REP(i, h){ 93 | scanf("%s", s[i]); 94 | DB("%s\n", s[i]); 95 | } 96 | 97 | bfs({ 0, 0 }); 98 | return 0; 99 | } 100 | 101 | //Solved -------------------------------------------------------------------------------- /CodinGame/ASCII_Art.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1483363301804d9f7c33bf6d832c6a908f3c507 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | char ascii[300][8100]; 40 | 41 | int main(){ 42 | 43 | int w, h, len; 44 | char s[1000]; 45 | scanf("%d%d", &w, &h); 46 | getchar(); 47 | scanf("%[^\n]s", s); 48 | getchar(); 49 | REP(i, h){ 50 | scanf("%[^\n]s", ascii[i]); 51 | getchar(); 52 | } 53 | 54 | len = strlen(s); 55 | REP(i, len){ 56 | if (!isalpha(s[i])) 57 | s[i] = '['; 58 | else if (islower(s[i])) 59 | s[i] -= 32; 60 | } 61 | 62 | REP(i, h){ 63 | REP(j, len){ 64 | REP(k, w) 65 | printf("%c", ascii[i][(s[j] - 'A')*w + k]); 66 | } 67 | printf("\n"); 68 | } 69 | 70 | return 0; 71 | } 72 | 73 | //Solved -------------------------------------------------------------------------------- /CodinGame/Bubble_Sort.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1626188cc572898cc324b70a6b49e09cfb1e117 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define DB(s,x) fprintf(stderr,s,x); 35 | #define MS(x,n) memset(x,n,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | int a[100000]; 43 | 44 | int main(){ 45 | 46 | int n; 47 | scanf("%d", &n); 48 | REP(i, n) 49 | scanf("%d", &a[i]); 50 | 51 | REP(i, n){ 52 | REP(j, n-1){ 53 | if (a[j]>a[j+1]){ 54 | a[j] ^= a[j+1] ^= a[j] ^= a[j+1]; 55 | REP(k, n) 56 | printf("%d", a[k]); 57 | printf("\n"); 58 | } 59 | } 60 | } 61 | 62 | return 0; 63 | } 64 | 65 | // -------------------------------------------------------------------------------- /CodinGame/ChuckNoris.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define sp system("pause") 6 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 7 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 8 | #define REP(i,n) FOR(i,0,(int)n-1) 9 | #define MS0(x) memset(x,0,sizeof(x)) 10 | #define MS1(x) memset(x,1,sizeof(x)) 11 | #define SORT(a,n) sort(begin(a),begin(a)+n) 12 | #define REV(a,n) reverse(begin(a),begin(a)+n) 13 | #define ll long long 14 | #define MOD 1000000007 15 | 16 | char bits[8000]; 17 | int k = 0; 18 | 19 | void getbits(char c){ 20 | FORD(i, 6, 0) 21 | bits[k++] = ((c&(1<>i) + '0'; 22 | 23 | } 24 | 25 | void encode(){ 26 | 27 | REP(i, k){ 28 | char c = bits[i], len = 1; 29 | while (c==bits[i+1]){ 30 | len++; 31 | i++; 32 | } 33 | 34 | if (c == '1') 35 | printf("0 "); 36 | else 37 | printf("00 "); 38 | 39 | REP(j, len) 40 | printf("0"); 41 | if (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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define REP(i,n) FOR(i,0,(int)n-1) 34 | #define pb(x) push_back(x) 35 | #define mp(a,b) make_pair(a,b) 36 | #define MS0(x) memset(x,0,sizeof(x)) 37 | #define MS1(x) memset(x,1,sizeof(x)) 38 | #define SORT(a,n) sort(begin(a),begin(a)+n) 39 | #define REV(a,n) reverse(begin(a),begin(a)+n) 40 | #define ll long long 41 | #define pii pair 42 | #define MOD 1000000007 43 | 44 | 45 | 46 | int main() { 47 | 48 | int t; 49 | string s1, s2; 50 | scanf("%d", &t); 51 | REP(tc, t) { 52 | cin>>s1; 53 | cin>>s2; 54 | int ans = 1; 55 | REP(i, s1.size()) { 56 | if (!(s1[i]==s2[i] || s1[i]=='?' || s2[i]=='?')) { 57 | ans = 0; 58 | break; 59 | } 60 | } 61 | puts(ans?"Yes":"No"); 62 | } 63 | sp; 64 | return 0; 65 | } 66 | 67 | // Solved -------------------------------------------------------------------------------- /CodinGame/CodeChef_Chef_and_the_XORed_Number.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codechef.com/COOK61/problems/XORNUBER 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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define REP(i,n) FOR(i,0,(int)n-1) 34 | #define pb(x) push_back(x) 35 | #define mp(a,b) make_pair(a,b) 36 | #define MS0(x) memset(x,0,sizeof(x)) 37 | #define MS1(x) memset(x,1,sizeof(x)) 38 | #define SORT(a,n) sort(begin(a),begin(a)+n) 39 | #define REV(a,n) reverse(begin(a),begin(a)+n) 40 | #define ll long long 41 | #define pii pair 42 | #define MOD 1000000007 43 | 44 | bool check(int n) { 45 | 46 | bool hasZero = false; 47 | while (n) { 48 | if (n%2==0) { 49 | hasZero = true; 50 | break; 51 | } 52 | n /= 2; 53 | } 54 | return hasZero; 55 | } 56 | 57 | int main() { 58 | 59 | int t, n; 60 | scanf("%d", &t); 61 | REP(tc, t) { 62 | scanf("%d", &n); 63 | if (n==1) 64 | printf("2\n"); 65 | else if (check(n)) 66 | printf("-1\n"); 67 | else 68 | printf("%d\n", n/2); 69 | } 70 | return 0; 71 | } 72 | 73 | //Solved -------------------------------------------------------------------------------- /CodinGame/Coding_Points_Calculation.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //This is to calculate CP for a contest 8 | 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 | 23 | using namespace std; 24 | 25 | #define sp system("pause") 26 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 27 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 28 | #define REP(i,n) FOR(i,0,(int)n-1) 29 | #define DB(s,x) fprintf(stderr,s,x) 30 | #define MS0(x) memset(x,0,sizeof(x)) 31 | #define MS1(x) memset(x,1,sizeof(x)) 32 | #define SORT(a,n) sort(begin(a),begin(a)+n) 33 | #define REV(a,n) reverse(begin(a),begin(a)+n) 34 | #define ll long long 35 | #define MOD 1000000007 36 | 37 | int n, range = 10; 38 | 39 | int calcPoints(int r){ 40 | 41 | double CP = pow(n, ((double)n - r + 1) / n); 42 | return round(CP); 43 | } 44 | 45 | 46 | int main(){ 47 | 48 | 49 | FILE *f = fopen("res.txt", "w"); 50 | 51 | 52 | printf("Enter N the number of participants that have a score of more than 0% : "); 53 | cin >> n; 54 | 55 | 56 | printf(" Rank Range | Points Range \n"); 57 | for (int i = 1; i <= n; i += n / range) 58 | printf(" %4d to %4d | %4d to %4d \n", i, i + n / 10, calcPoints(i), calcPoints(i+n/10)); 59 | 60 | printf("\n\n"); 61 | sp; 62 | 63 | return 0; 64 | } 65 | 66 | // -------------------------------------------------------------------------------- /CodinGame/Conway_Sequence.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/15085145ad8bd81d4f022f8c787b688414e438f 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | int main(){ 40 | 41 | int r, l,s=1; 42 | int a[10000],b[10000]; 43 | scanf("%d%d", &r, &l); 44 | a[0] = r; 45 | REP(i, l-1){ 46 | int k = 0; 47 | REP(j, s){ 48 | int c = 1; 49 | while (j + 1 < s && a[j] == a[j + 1]){ 50 | j++; 51 | c++; 52 | } 53 | b[k++] = c; 54 | b[k++] = a[j]; 55 | } 56 | s = k; 57 | REP(j, k) 58 | a[j] = b[j]; 59 | } 60 | REP(i, s) 61 | if (i) 62 | printf(" %d", a[i]); 63 | else 64 | printf("%d", a[i]); 65 | 66 | return 0; 67 | } 68 | 69 | // -------------------------------------------------------------------------------- /CodinGame/Defibrillators.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1500798534ae2080d70455e4476342630defd6b 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 | 23 | using namespace std; 24 | 25 | #define sp system("pause") 26 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 27 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 28 | #define REP(i,n) FOR(i,0,(int)n-1) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | #define DB(s,x) fprintf(stderr,s,x); 36 | 37 | 38 | 39 | void readCord(double *n){ 40 | 41 | char str[1000]; 42 | scanf("%[^;\n]s", str); 43 | str[(strchr(str, ',') - str)] = '.'; 44 | *n = stod(str); 45 | } 46 | 47 | double dist(double lon, double lat,double dlon,double dlat){ 48 | 49 | double x = (lon - dlon)*cos((lat + dlat) / 2); 50 | double y = lat - dlat; 51 | return sqrt(x*x + y*y)*6371; 52 | 53 | } 54 | 55 | int main(){ 56 | 57 | double ulon, ulat,min = 1e9; 58 | int n,dum1; 59 | char dum2[1000],name[1000],ans[1000]; 60 | 61 | readCord(&ulon); getchar(); 62 | readCord(&ulat); getchar(); 63 | scanf("%d", &n); 64 | REP(i, n){ 65 | double x, y; 66 | scanf("%d", &dum1);getchar(); 67 | scanf("%[^\n;]s", name);getchar(); 68 | scanf("%[^\n;]s", dum2);getchar(); 69 | scanf("%[^\n;]s", dum2);getchar(); 70 | readCord(&x);getchar(); 71 | readCord(&y); 72 | double d = dist(ulon, ulat, x,y); 73 | if (d < min){ 74 | min = d; 75 | strcpy(ans, name); 76 | } 77 | } 78 | printf("%s\n", ans); 79 | } 80 | 81 | // -------------------------------------------------------------------------------- /CodinGame/Descent.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/14905944f8d80ca4f01c50b9368b922e3157fe3 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | 35 | int main(){ 36 | 37 | int x, y; 38 | int m[10],hig,pos; 39 | while (1){ 40 | scanf("%d%d",&x,&y); 41 | pos = -1; 42 | hig = -1; 43 | REP(i, 8){ 44 | scanf("%d", &m[i]); 45 | if (m[i] > hig){ 46 | hig = m[i]; 47 | pos = i; 48 | } 49 | } 50 | puts(x^pos ? "HOLD" : "FIRE"); 51 | } 52 | return 0; 53 | } 54 | 55 | //Solved -------------------------------------------------------------------------------- /CodinGame/Dwarfs_standing_on_the_shoulders_of_giants.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | vector graph[100000]; 40 | 41 | char influenced[100000]; 42 | 43 | int bfs(int s){ 44 | 45 | queue> q; 46 | pair u; 47 | int ans=1, v[100000]; 48 | MS0(v); 49 | 50 | v[s] = 1; 51 | q.push(make_pair(s,1)); 52 | 53 | while (!q.empty()){ 54 | u = q.front(); 55 | q.pop(); 56 | int size = graph[u.first].size(); 57 | REP(i, size){ 58 | if (!v[graph[u.first][i]]){ 59 | ans = max(ans, u.second + 1); 60 | q.push(make_pair(graph[u.first][i], u.second + 1)); 61 | v[graph[u.first][i]] = 1; 62 | } 63 | } 64 | } 65 | return ans; 66 | 67 | } 68 | 69 | 70 | int main(){ 71 | 72 | int n,x,y,last=-1; 73 | scanf("%d", &n); 74 | REP(i, n){ 75 | scanf("%d%d", &x, &y); 76 | graph[x].push_back(y); 77 | influenced[y] = 1; 78 | last = max(x, last); 79 | last = max(y, last); 80 | } 81 | 82 | int ans = 0; 83 | FOR(i, 0, last){ 84 | if (!influenced[i] && graph[i].size() > 0) 85 | ans = max(ans, bfs(i)); 86 | } 87 | 88 | printf("%d\n",ans); 89 | return 0; 90 | } 91 | 92 | //Solved -------------------------------------------------------------------------------- /CodinGame/Genome_Sequencing.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/15086967aa86622a9f16367bfcfd1ad52cc3d5a 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 | 27 | using namespace std; 28 | 29 | #define sp system("pause") 30 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 31 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 32 | #define REP(i,n) FOR(i,0,(int)n-1) 33 | #define pb(x) push_back(x) 34 | #define mp(a,b) make_pair(a,b) 35 | #define DB(format,...) fprintf(stderr,format, ##__VA_ARGS__); 36 | #define MS(x,n) memset(x,n,sizeof(x)) 37 | #define SORT(a,n) sort(begin(a),begin(a)+n) 38 | #define REV(a,n) reverse(begin(a),begin(a)+n) 39 | #define ll long long 40 | #define pii pair 41 | #define MOD 1000000007 42 | 43 | 44 | vector s; 45 | vector order; 46 | 47 | int overlap(string s1, string s2){ 48 | 49 | int max = 0; 50 | FOR(i, 1, min(s1.size(), s2.size()) ){ 51 | if (strncmp(s1.c_str()+s1.size()-i, s2.c_str(), i)==0) 52 | max = i; 53 | } 54 | return max; 55 | } 56 | 57 | 58 | int main(){ 59 | 60 | int n; 61 | s.pb(""); 62 | scanf("%d", &n); 63 | REP(i, n){ 64 | char ts[11]; 65 | scanf("%s", ts); 66 | s.pb(ts); 67 | } 68 | //sort(s.begin(), s.end()); 69 | 70 | order.pb(0); 71 | order.pb(1); 72 | order.pb(0); 73 | 74 | FOR(i, 2, n){ 75 | 76 | int isSub = 0; 77 | FOR(j, 1, order.size()-2){ 78 | if (strstr(s[order[j]].c_str(),s[i].c_str())){ 79 | isSub = 1; 80 | break; 81 | } 82 | } 83 | if (isSub) 84 | continue; 85 | 86 | int max = -1, pos = -1; 87 | FOR(j, 1, order.size()-1){ 88 | int r = overlap(s[i], s[order[j]]); 89 | int l = overlap(s[order[j-1]], s[i]); 90 | int o = 0; 91 | REP(k,j-1) 92 | o += overlap(s[order[k]], s[order[k+1]]); 93 | 94 | FOR(k, j, order.size()-2) 95 | o += overlap(s[order[k]], s[order[k+1]]); 96 | 97 | if (l+r+o>max){ 98 | max = l+r+o; 99 | pos = j; 100 | } 101 | } 102 | auto it = order.begin(); 103 | while (pos--) 104 | it++; 105 | order.insert(it, i); 106 | } 107 | 108 | string res = s[order[1]]; 109 | 110 | FOR(i, 2, order.size()-2){ 111 | if (strstr(res.c_str(), s[order[i]].c_str())) 112 | continue; 113 | int l = overlap(s[order[i]], res); 114 | int r = overlap(res, s[order[i]]); 115 | 116 | if (l>r){ 117 | string t = res; 118 | res = s[order[i]]; 119 | res.insert(res.end(), t.begin()+l, t.end()); 120 | } 121 | else{ 122 | res.insert(res.end(), s[order[i]].begin()+r, s[order[i]].end()); 123 | } 124 | } 125 | DB("Res = %s\n", res.c_str()); 126 | printf("%d", res.size()); 127 | return 0; 128 | } 129 | 130 | //Solved -------------------------------------------------------------------------------- /CodinGame/Heat_Detector.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/150214389545b0876dd7940a945319016665ae2 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | 35 | 36 | struct point{ 37 | int x, y; 38 | }; 39 | 40 | int main(){ 41 | 42 | int w, h, turns; 43 | int xl, x, xh; 44 | int yl, y, yh; 45 | char s[2]; 46 | scanf("%d%d%d%d%d", &w, &h, &turns, &x, &y); 47 | xl = 0; 48 | xh = w - 1; 49 | yl = 0; 50 | yh = h - 1; 51 | 52 | while (1){ 53 | 54 | scanf("%s", s); 55 | if (s[0] == 'U') 56 | yh = y - 1; 57 | else if (s[0] == 'D') 58 | yl = y + 1; 59 | else if (s[0] == 'L') 60 | xh = x - 1; 61 | else if (s[0] == 'R') 62 | xl = x + 1; 63 | 64 | if (s[1] && s[1] == 'L') 65 | xh = x - 1; 66 | else if (s[1] && s[1] == 'R') 67 | xl = x + 1; 68 | 69 | x = (xl + xh) / 2; 70 | y = (yl + yh) / 2; 71 | printf("%d %d\n", x, y); 72 | } 73 | return 0; 74 | } 75 | 76 | //:D Solved -------------------------------------------------------------------------------- /CodinGame/Horse_Racing_Duals.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1501310330c1a837faf2a1a4e25d85e96b48d41 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | struct point{ 35 | int x, y; 36 | }; 37 | 38 | int main(){ 39 | 40 | int n,a[100000]; 41 | scanf("%d", &n); 42 | REP(i, n) 43 | scanf("%d", &a[i]); 44 | SORT(a, n); 45 | int d = 10000000; 46 | REP(i, n - 1) 47 | d = min(d, a[i + 1] - a[i]); 48 | printf("%d", d); 49 | return 0; 50 | } 51 | 52 | //Solved -------------------------------------------------------------------------------- /CodinGame/MIME_Type.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/150028832ac467de1e6e189166ab710ed9ccd97 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 | 24 | using namespace std; 25 | 26 | #define sp system("pause") 27 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 28 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 29 | #define REP(i,n) FOR(i,0,(int)n-1) 30 | #define MS0(x) memset(x,0,sizeof(x)) 31 | #define MS1(x) memset(x,1,sizeof(x)) 32 | #define SORT(a,n) sort(begin(a),begin(a)+n) 33 | #define REV(a,n) reverse(begin(a),begin(a)+n) 34 | #define ll long long 35 | #define MOD 1000000007 36 | 37 | vector> ext; 38 | 39 | int main(){ 40 | 41 | char s1[257], s2[257]; 42 | int n, q; 43 | scanf("%d%d", &n, &q); 44 | REP(i, n){ 45 | scanf("%s %s", s1, s2); 46 | int l1 = strlen(s1), l2 = strlen(s2); 47 | REP(j, l1) 48 | if (isupper(s1[j])) 49 | s1[j] += 32; 50 | REP(j, l2){ 51 | if (isupper(s2[j])) 52 | s2[j] += 32; 53 | } 54 | ext.push_back(make_pair(s1,s2)); 55 | } 56 | 57 | REP(i, q){ 58 | scanf("%s", s1); 59 | int l1 = strlen(s1); 60 | REP(j, l1) 61 | if (isupper(s1[j])) 62 | s1[j] += 32; 63 | int x = (int)(strrchr(s1, '.') - s1 + 1); 64 | fprintf(stderr, "X = %d\n", x); 65 | x = x < 0 ?strlen(s1):x; 66 | strcpy(s2, s1 + x); 67 | int pos = -1,size = ext.size(); 68 | REP(j, size){ 69 | if (strcmp(ext[j].first.c_str(), s2) == 0){ 70 | pos = j; 71 | break; 72 | } 73 | } 74 | if (pos==-1) 75 | puts("UNKNOWN"); 76 | else 77 | printf("%s\n", ext[pos].second.c_str()); 78 | 79 | } 80 | return 0; 81 | } 82 | 83 | // -------------------------------------------------------------------------------- /CodinGame/Mars_Lander.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x); 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | 36 | struct point{ 37 | int x, y; 38 | }; 39 | 40 | const float g = -3.711; 41 | const double pi = 3.1415926; 42 | const int safedist = 300; 43 | 44 | point grnd[100], landl, landr; 45 | 46 | 47 | int main(){ 48 | 49 | 50 | int n, sx, sy, f, r, p; 51 | point ml,landing; 52 | 53 | scanf("%d", &n); 54 | REP(i, n){ 55 | scanf("%d%d", &grnd[i].x, &grnd[i].y); 56 | if (grnd[i].y == grnd[i - 1].y){ 57 | landl = grnd[i - 1]; 58 | landr = grnd[i]; 59 | } 60 | } 61 | 62 | DB("Left Landing Point = %d\n", landl.x); 63 | DB("Right Landing Point = %d\n", landr.x); 64 | 65 | while (1){ 66 | scanf("%d%d%d%d%d%d%d", &ml.x, &ml.y, &sx, &sy, &f, &r, &p); 67 | 68 | //Finding Landing Point 69 | double t; 70 | for(t=0;t<=1000;t+=0.001){ 71 | int x = ml.x + sx*t ; 72 | int y = ml.y + sy*t + (g*t*t)/2 ; 73 | if (y < landr.y){ 74 | landing.x = x; 75 | landing.y = y+1; 76 | DB("Landing in %f sec\n", t); 77 | break; 78 | } 79 | } 80 | 81 | DB("Landing at X =%d\n", landing.x); 82 | DB("Landing at Y =%d\n", landing.y); 83 | 84 | if (landl.x == 500){ 85 | if (t<3) 86 | printf("0 4\n"); 87 | else if (ml.x<2000) 88 | printf("-45 3\n"); 89 | else if (sy<-1) 90 | printf("0 4\n"); 91 | else 92 | printf("0 3\n"); 93 | } 94 | else if (t > 2){ 95 | double ax = -2 * (ml.x + sx*t - ((double)landl.x + landr.x) / 2) / (t*t); 96 | double ay = (-30 - sy - g*t) / t; 97 | DB("Acc X = %f\n", ax); 98 | DB("Acc Y = %f\n", ay); 99 | double rot = atan2(ay, ax) * 180 / pi; 100 | double thrust = sqrt(ay*ay + ax*ax); 101 | 102 | DB("Rot = %f\n", rot); 103 | DB("Thrust = %f\n", thrust); 104 | 105 | rot = rint(rot) - 90; 106 | thrust = rint(thrust); 107 | if (thrust > 4) 108 | thrust = 4; 109 | else if (thrust < 0) 110 | thrust = 0; 111 | printf("%d %d\n", (int)rot, (int)thrust); 112 | } 113 | else{ 114 | double ay = (-40 - sy - g*t) / t; 115 | if (ay>0) 116 | printf("0 %d\n", (int)rint(ay)); 117 | else 118 | printf("0 0\n", (int)rint(ay)); 119 | } 120 | } 121 | return 0; 122 | } 123 | // -------------------------------------------------------------------------------- /CodinGame/Mayan_Calcualtion.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1521544efafcb4ea816c3d9c788484326738135 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | char dig[100][2000]; 40 | int w, h, n; 41 | 42 | bool compareSymb(char s[100][100],ll int n){ 43 | 44 | REP(i, h){ 45 | REP(j, w){ 46 | if (s[i][j] != dig[i][j + w*n]) 47 | return 0; 48 | } 49 | } 50 | return 1; 51 | } 52 | 53 | int symbToDig(char s[100][100]){ 54 | 55 | REP(i, 20){ 56 | if (compareSymb(s, i)) 57 | return i; 58 | } 59 | DB("(╯°□°)╯︵ ┻━┻\n", 0); 60 | return -1; 61 | 62 | } 63 | 64 | void printDig(ll int n){ 65 | 66 | REP(i, h){ 67 | REP(j, w) 68 | printf("%c",dig[i][j+n*w]); 69 | printf("\n"); 70 | } 71 | 72 | } 73 | 74 | int main(){ 75 | 76 | 77 | ll int a = 0, b = 0, res = 0; 78 | char sym[100][100],op; 79 | scanf("%d %d", &w, &h); getchar(); 80 | REP(i, h) 81 | gets(dig[i]); 82 | scanf("%d", &n); getchar(); 83 | FOR(i,1,n){ 84 | gets(sym[(i - 1) % h]); 85 | if (i%h==0) 86 | a = a * 20 + symbToDig(sym); 87 | } 88 | scanf("%d", &n); getchar(); 89 | FOR(i, 1, n){ 90 | gets(sym[(i - 1) % h]); 91 | if (i % h == 0) 92 | b = b * 20 + symbToDig(sym); 93 | } 94 | scanf("%c", &op); 95 | switch (op){ 96 | case '+': 97 | res = a + b; 98 | break; 99 | case '-': 100 | res = a - b; 101 | break; 102 | case '*': 103 | res = a*b; 104 | break; 105 | case '/': 106 | res = a / b; 107 | break; 108 | } 109 | 110 | vector base20; 111 | 112 | ll int p = 1; 113 | while (p < res) 114 | p *= 20; 115 | p /= 20; 116 | 117 | if (res==0) 118 | base20.push_back(0); 119 | while (p){ 120 | ll int coef = res / p; 121 | base20.push_back(coef); 122 | res -= coef*p; 123 | p /= 20; 124 | } 125 | REP(i, base20.size()) 126 | printDig(base20[i]); 127 | 128 | return 0; 129 | } 130 | 131 | // -------------------------------------------------------------------------------- /CodinGame/Network_Cabling.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/1507622b5ca3d9dbf67ee27b081ddabce4025e8 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | int main(){ 40 | 41 | ll int x, ans = 0, ysum = 0, xmin = 10000000000, xmax = -10000000000; 42 | int n,y[100005]; 43 | scanf("%d", &n); 44 | REP(i, n){ 45 | scanf("%lld %d", &x, &y[i]); 46 | xmin = min(x, xmin); 47 | xmax = max(xmax, x); 48 | } 49 | ans += xmax - xmin; 50 | SORT(y, n); 51 | if (n % 2){ 52 | REP(i, n) 53 | ans += abs(y[i] - y[n/2]); 54 | } 55 | else{ 56 | ll int p1 = 0, p2 = 0; 57 | REP(i, n) 58 | p1 += abs(y[i] - y[n/2]); 59 | REP(i, n) 60 | p2 += abs(y[i] - y[n/2+1]); 61 | ans += min(p1, p2); 62 | } 63 | printf("%lld\n",ans); 64 | return 0; 65 | } 66 | 67 | //Solved -------------------------------------------------------------------------------- /CodinGame/Nintendo_Challenge.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/148336711054a6e0efd78e43572a33a717f17de 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 | 27 | using namespace std; 28 | 29 | #define sp system("pause") 30 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 31 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 32 | #define REP(i,n) FOR(i,0,(int)n-1) 33 | #define pb(x) push_back(x) 34 | #define mp(a,b) make_pair(a,b) 35 | #define DB(s,x) fprintf(stderr,s,x); 36 | #define MS(x,n) memset(x,n,sizeof(x)) 37 | #define SORT(a,n) sort(begin(a),begin(a)+n) 38 | #define REV(a,n) reverse(begin(a),begin(a)+n) 39 | #define ll long long 40 | #define pii pair 41 | #define MOD 1000000007 42 | 43 | int main(){ 44 | unsigned int x, size; 45 | bitset<64> b; 46 | 47 | scanf("%d", &size); 48 | 49 | for (int i = 0; i < size / 16; i++){ 50 | scanf("%x", &x); 51 | REP(j, 32){ 52 | b[63 - i * 32 - j] = x % 2; 53 | x /= 2; 54 | } 55 | } 56 | /* 57 | for (int i = 0; i < size / 16; i++) 58 | b[i] = 0; 59 | 60 | for (int i = 0; i < size; i++) 61 | for (int j = 0; j < size; j++) 62 | b[(i+j) / 32] ^= ( a[i/32] >> (i%32) & a[j/32+size/32] >> (j%32) & 1) << (i+j)%32; 63 | 64 | for (int i = 0; i < size / 16; i++) 65 | cout << hex << b[i] << " "; 66 | 67 | */ 68 | return 0; 69 | } 70 | // -------------------------------------------------------------------------------- /CodinGame/Paranoid_Android.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/150212073a567e20c7a9fb5f15a093e5e7283dd 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | vector e[15]; 40 | 41 | int main(){ 42 | 43 | int h, w, r, ey, ex, pop, addele, ele; 44 | int x, y; 45 | char dir[10]; 46 | scanf("%d%d%d%d%d%d%d%d", &h, &w, &r, &ey, &ex, &pop, &addele, &ele); 47 | REP(i, ele){ 48 | int a, b; 49 | scanf("%d%d", &a, &b); 50 | e[a].push_back(b); 51 | } 52 | 53 | while (1){ 54 | scanf("%d %d %s", &y, &x, dir); 55 | DB("x = %d\n", ex); 56 | DB("y = %d\n", ey); 57 | DB("Dir = %s\n", dir); 58 | 59 | if (ey == y && ((exx && !strcmp(dir, "LEFT")))) 60 | printf("BLOCK\n"); 61 | else if (e[y].size() && ((e[y][0]x && !strcmp(dir, "LEFT")))) 62 | printf("BLOCK\n"); 63 | else 64 | printf("WAIT\n"); 65 | } 66 | return 0; 67 | } 68 | 69 | // -------------------------------------------------------------------------------- /CodinGame/Paranoid_Android_One_step_further.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/150212073a567e20c7a9fb5f15a093e5e7283dd 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | vector e[15]; 40 | 41 | int main(){ 42 | 43 | int h, w, r, ey, ex, pop, addele, ele; 44 | int x, y; 45 | char dir[10]; 46 | scanf("%d%d%d%d%d%d%d%d", &h, &w, &r, &ey, &ex, &pop, &addele, &ele); 47 | e[ey].push_back(ex); 48 | REP(i, ele){ 49 | int a, b; 50 | scanf("%d%d", &a, &b); 51 | e[a].push_back(b); 52 | } 53 | 54 | while (1){ 55 | scanf("%d %d %s", &y, &x, dir); 56 | DB("x = %d\n", x); 57 | DB("y = %d\n", y); 58 | DB("Dir = %s\n", dir); 59 | 60 | if (e[y].size() && ((e[y][0]x && !strcmp(dir, "LEFT")))) 61 | printf("BLOCK\n"); 62 | else if (strcmp(dir, "NONE") && e[y].size() == 0){ 63 | e[y].push_back(x); 64 | printf("ELEVATOR\n"); 65 | } 66 | else 67 | printf("WAIT\n"); 68 | } 69 | return 0; 70 | } 71 | 72 | // -------------------------------------------------------------------------------- /CodinGame/Paranoid_Android_Optimization.c: -------------------------------------------------------------------------------- 1 | #define s(a,b) scanf("%d%d",&a,&b) 2 | d, w, r, a, b, c, d, g, x, y, e[15]; main(h){ 3 | s(h, w); s(r, d); s(c, b); s(a, g); 4 | scanf("%d%d%d%d%d%d%d%d", &h, &w, &r, &d, &c, &b, &a, &g); 5 | for (e[g] = c; g--; s(a, b), e[a] = b); while (scanf("%d%d %s", &y, &x, &d))puts(e[y]x&&!d ? "BLOCK" : "WAIT", d -= 76); 6 | } -------------------------------------------------------------------------------- /CodinGame/Power_of_Thor.c: -------------------------------------------------------------------------------- 1 | main(a,b,x,y){for(scanf("%d%d%d%d",&a,&b,&x,&y);putchar(b>y?y++,83:bx?"E":a 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 | using namespace std; 24 | 25 | #define sp system("pause") 26 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 27 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 28 | #define REP(i,n) FOR(i,0,(int)n-1) 29 | #define DB(s,x) fprintf(stderr,s,x) 30 | #define MS0(x) memset(x,0,sizeof(x)) 31 | #define MS1(x) memset(x,1,sizeof(x)) 32 | #define SORT(a,n) sort(begin(a),begin(a)+n) 33 | #define REV(a,n) reverse(begin(a),begin(a)+n) 34 | #define ll long long 35 | #define MOD 1000000007 36 | struct point{ 37 | int x, y; 38 | }; 39 | 40 | 41 | int nx[10000]; 42 | int e[10000]; 43 | 44 | int main(){ 45 | 46 | int l, c, n; 47 | ll int tot=0, paisa = 0; 48 | int q[10000],front=0,rear; 49 | scanf("%d%d%d", &l, &c, &n); 50 | REP(i, n){ 51 | scanf("%d", &q[i]); 52 | tot += q[i]; 53 | nx[i] = -1; 54 | } 55 | 56 | REP(i, c){ 57 | if (nx[front] >= 0){ 58 | paisa += e[front]; 59 | front = nx[front]; 60 | } 61 | else{ 62 | int fools = 0,start = front; 63 | while (fools < tot && fools + q[front] <= l){ 64 | fools += q[front]; 65 | front = (front + 1) % n; 66 | } 67 | e[start] = fools; 68 | paisa += e[start]; 69 | nx[start] = front; 70 | } 71 | } 72 | printf("%lld\n", paisa); 73 | return 0; 74 | } 75 | 76 | //Solved -------------------------------------------------------------------------------- /CodinGame/Scrabble.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/154201662ef1c71246c7d3c5e0c6462894a49cf 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | 36 | 37 | struct word{ 38 | int score; 39 | char s[30]; 40 | }; 41 | int score[26] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10}; 42 | 43 | word dict[100001]; 44 | 45 | bool comp(word lhs, word rhs){ 46 | 47 | return strcmp(lhs.s, rhs.s) > 0; 48 | } 49 | 50 | 51 | 52 | bool canMake(int x, char s[8]){ 53 | 54 | int f1[26], f2[26]; 55 | MS0(f1); 56 | MS0(f2); 57 | int l1 = strlen(dict[x].s), l2 = strlen(s); 58 | 59 | REP(i, l1) 60 | f1[dict[x].s[i]-'a']++; 61 | REP(i, l2) 62 | f2[s[i] - 'a']++; 63 | 64 | 65 | REP(i, 26){ 66 | if (f1[i] > f2[i]) 67 | return 0; 68 | } 69 | 70 | return 1; 71 | } 72 | 73 | int main(){ 74 | 75 | int n; 76 | char words[8]; 77 | scanf("%d", &n); 78 | REP(i, n){ 79 | scanf("%s", dict[i].s); 80 | dict[i].score = 0; 81 | int l = strlen(dict[i].s); 82 | REP(j, l) 83 | dict[i].score += score[dict[i].s[j]-'a']; 84 | } 85 | scanf("%s", words); 86 | 87 | int score = 0; 88 | char ans[31]; 89 | 90 | REP(i, n){ 91 | if (canMake(i, words) && dict[i].score>score){ 92 | score = dict[i].score; 93 | strcpy(ans, dict[i].s); 94 | } 95 | } 96 | printf("%s", ans); 97 | return 0; 98 | } 99 | 100 | // -------------------------------------------------------------------------------- /CodinGame/Skynet_The_Chasm.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/149122404f41d832b8880f5de44ceb3eb28ff66 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(c,x) fprintf(stderr,"%s = %d\n",c,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | 36 | int main(){ 37 | 38 | int r, g, l,s,x=0,a,b; 39 | scanf("%d%d%d", &r, &g, &l); 40 | r--; 41 | l += g+r; 42 | DB("l", l); 43 | while (1){ 44 | scanf("%d%d", &s, &x); 45 | DB("x", x); 46 | DB("sum", s*(s - 1)/2); 47 | if (xg+1) 50 | printf("SLOW\n"); 51 | else if (x == r) 52 | printf("JUMP\n"); 53 | else if (x>r && (x+s*(s+1)/2)>=l) 54 | printf("SLOW\n"); 55 | else 56 | printf("WAIT\n"); 57 | } 58 | return 0; 59 | } 60 | 61 | //Solved -------------------------------------------------------------------------------- /CodinGame/Skynet_The_Virus.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | struct point{ 35 | int x, y; 36 | }; 37 | 38 | int graph[500][500], isGate[500], n; 39 | 40 | 41 | void bfs(int s){ 42 | 43 | int v[500],u; 44 | MS0(v); 45 | queue q; 46 | v[s] = 1; 47 | q.push(s); 48 | 49 | while (!q.empty()){ 50 | u = q.front(); 51 | q.pop(); 52 | REP(i, n){ 53 | if (!v[i] && graph[u][i]){ 54 | v[i] = 1; 55 | q.push(i); 56 | if (isGate[i]){ 57 | graph[u][i] = 0; 58 | graph[i][u] = 0; 59 | printf("%d %d\n", u, i); 60 | return; 61 | } 62 | } 63 | } 64 | } 65 | 66 | } 67 | 68 | int main(){ 69 | 70 | int e,g,agent; 71 | scanf("%d%d%d", &n,&e,&g); 72 | REP(i, e){ 73 | int u, v; 74 | scanf("%d%d", &u, &v); 75 | graph[u][v] = 1; 76 | graph[v][u] = 1; 77 | } 78 | REP(i, g){ 79 | int x; 80 | scanf("%d", &x); 81 | isGate[x] = 1; 82 | } 83 | while (1){ 84 | scanf("%d", &agent); 85 | bfs(agent); 86 | } 87 | return 0; 88 | } 89 | 90 | // -------------------------------------------------------------------------------- /CodinGame/Stock_Exchange_Losses.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/150711047ccf54f2b565001dfe092c497dd1dc5 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | int main(){ 40 | 41 | int n, a[100000],ans=0,h; 42 | scanf("%d", &n); 43 | REP(i,n){ 44 | scanf("%d", &a[i]); 45 | if (i){ 46 | h = max(h, a[i]); 47 | if (a[i] < a[i - 1]){ 48 | ans = min(ans, a[i] - h); 49 | } 50 | } 51 | else 52 | h = a[0]; 53 | 54 | } 55 | printf("%d", ans); 56 | return 0; 57 | } 58 | 59 | // -------------------------------------------------------------------------------- /CodinGame/Super_Computer.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/report/15086825d500585e2db6b1e003a3cfdbe189506 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | 36 | bool compare(pair l, pair r){ 37 | return l.second < r.second; 38 | } 39 | 40 | int main(){ 41 | 42 | int n; 43 | vector> a; 44 | scanf("%d", &n); 45 | REP(i, n){ 46 | int s, e; 47 | scanf("%d%d", &s, &e); 48 | a.push_back(make_pair(s, s + e)); 49 | } 50 | sort(begin(a), end(a), compare); 51 | int ans = 1, last = 0; 52 | FOR(i, 1, n - 1){ 53 | if (a[i].first >= a[last].second){ 54 | ans++; 55 | last = i; 56 | } 57 | } 58 | printf("%d", ans); 59 | 60 | return 0; 61 | } 62 | 63 | //Solved -------------------------------------------------------------------------------- /CodinGame/Surface.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/16258864cbd30045d121818fc0f5c3d84ad6a05 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define DB(s,x) fprintf(stderr,s,x); 35 | #define MS(x,n) memset(x,n,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | struct point{ 43 | int x, y; 44 | }; 45 | 46 | int w, h; 47 | int ans[1001]; 48 | point dir[4] = { { 0, 1 }, { 0, -1 }, { -1, 0 }, { 1, 0 } }; 49 | 50 | char area[10000][10000]; 51 | int v[10000][10000]; 52 | 53 | int BFS(point s,int k){ 54 | 55 | int c = 0; 56 | if (area[s.y][s.x]=='O'){ 57 | 58 | point u; 59 | queue q; 60 | 61 | q.push(s); 62 | v[s.y][s.x] = k; 63 | 64 | while (!q.empty()){ 65 | point u = q.front(); 66 | q.pop(); 67 | 68 | if (area[u.y][u.x]=='O') 69 | c++; 70 | 71 | REP(i, 4){ 72 | int dx = dir[i].x, dy = dir[i].y; 73 | if (u.x+dx>=0 && u.x+dx=0 && u.y+dy 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | struct point{ 35 | int x, y; 36 | }; 37 | 38 | vector tree[150000]; 39 | 40 | int v[150000]; 41 | int n, e; 42 | 43 | int topo(){ 44 | 45 | int erased = 0,time = 0; 46 | vector leaf; 47 | while (erased < e){ 48 | 49 | REP(i, n){ 50 | if (tree[i].size() == 1){ 51 | leaf.push_back(i); 52 | erased++; 53 | } 54 | } 55 | 56 | REP(i, leaf.size()){ 57 | int x; 58 | if (tree[leaf[i]].size() >= 1){ 59 | REP(j, tree[tree[leaf[i]][0]].size()){ 60 | if (tree[tree[leaf[i]][0]][j] == leaf[i]){ 61 | x = j; 62 | break; 63 | } 64 | } 65 | tree[tree[leaf[i]][0]].erase(tree[tree[leaf[i]][0]].begin() + x); 66 | tree[leaf[i]].clear(); 67 | } 68 | } 69 | leaf.clear(); 70 | time++; 71 | } 72 | return time; 73 | } 74 | 75 | int main(){ 76 | 77 | 78 | scanf("%d", &e); 79 | n = e + 1; 80 | REP(i, e){ 81 | int u, v; 82 | scanf("%d%d", &u, &v); 83 | n = max(u + 1, n); 84 | n = max(v + 1, n); 85 | tree[u].push_back(v); 86 | tree[v].push_back(u); 87 | } 88 | 89 | printf("%d", topo()); 90 | return 0; 91 | } 92 | 93 | // -------------------------------------------------------------------------------- /CodinGame/Telephone_Numbers.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/149691757e4b0642ca9e698a828e429690fa660 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | struct node{ 40 | int n; 41 | struct node* next[10]; 42 | }; 43 | 44 | struct node* List; 45 | int ans = 0; 46 | 47 | void append(struct node* p, char * s){ 48 | 49 | while (s[0]){ 50 | p->next[s[0] - '0'] = new node(); 51 | ans++; 52 | p = p->next[s[0] - '0']; 53 | p->n = s[0] - '0'; 54 | REP(i, 10) 55 | p->next[i] = NULL; 56 | s = s + 1; 57 | } 58 | 59 | 60 | } 61 | 62 | void addtoList(char s[100]){ 63 | 64 | struct node* curr = List; 65 | int len = strlen(s); 66 | REP(i, len){ 67 | if (curr && curr->next[s[i] - '0']) 68 | curr = curr->next[s[i] - '0']; 69 | else{ 70 | append(curr, s + i); 71 | break; 72 | } 73 | 74 | } 75 | 76 | } 77 | 78 | int main(){ 79 | 80 | List = new node(); 81 | REP(i, 10) 82 | List->next[i] = NULL; 83 | int n; 84 | char s[100]; 85 | scanf("%d", &n); 86 | REP(i, n){ 87 | scanf("%s", &s); 88 | addtoList(s); 89 | } 90 | printf("%d", ans); 91 | return 0; 92 | } 93 | 94 | // -------------------------------------------------------------------------------- /CodinGame/Temperatures.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //https://www.codingame.com/ide/14914882076291b377fe24f496e0fdddc431fb7 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define MS0(x) memset(x,0,sizeof(x)) 29 | #define MS1(x) memset(x,1,sizeof(x)) 30 | #define SORT(a,n) sort(begin(a),begin(a)+n) 31 | #define REV(a,n) reverse(begin(a),begin(a)+n) 32 | #define ll long long 33 | #define MOD 1000000007 34 | 35 | int main(){ 36 | 37 | int temp = 5526, n, x; 38 | scanf("%d", &n); 39 | REP(i, n){ 40 | scanf("%d", &x); 41 | if (abs(x) < abs(temp) || (abs(x) == abs(temp) && x>0)) 42 | temp = x; 43 | } 44 | if (n) 45 | printf("%d\n", temp); 46 | else 47 | printf("0"); 48 | return 0; 49 | } 50 | 51 | // -------------------------------------------------------------------------------- /CodinGame/The_Resistance.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define DB(s,x) fprintf(stderr,s,x); 35 | #define MS(x,n) memset(x,n,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | stack st; 43 | 44 | char code[100000]; 45 | char dict[100000][100]; 46 | char alphabet[26][10]{".-","-...","-.-.","-..",".","..-.", // a-f 47 | "--.","....","..",".---","-.-",".-..", // g-l 48 | "--","-.","---",".--.","--.-",".-.", // m-r 49 | "...","-","..-","...-",".--","-..-", //s-x 50 | "-.--","--.."}; //y-z 51 | int n; 52 | 53 | void wordToMorse(char word[100]){ 54 | 55 | char morse[100]=""; 56 | int len = strlen(word); 57 | REP(i, len) 58 | strcat(morse, alphabet[word[i] - 'A']); 59 | strcpy(word, morse); 60 | 61 | } 62 | 63 | ll int matchM(char *s){ 64 | 65 | if (s[0] == 0){ 66 | return 1; 67 | } 68 | 69 | ll int res = 0; 70 | REP(i, n){ 71 | if (!strncmp(dict[i], s, strlen(dict[i]))) 72 | res += matchM(s + strlen(dict[i])); 73 | } 74 | 75 | return res; 76 | 77 | } 78 | 79 | int main(){ 80 | 81 | 82 | 83 | scanf("%s", code); 84 | scanf("%d", &n); 85 | REP(i, n){ 86 | scanf("%s", dict[i]); 87 | wordToMorse(dict[i]); 88 | } 89 | printf("%lld\n", matchM(code)); 90 | return 0; 91 | } 92 | 93 | // -------------------------------------------------------------------------------- /CodinGame/Triangulation.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 22 | using namespace std; 23 | 24 | #define sp system("pause") 25 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 26 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 27 | #define REP(i,n) FOR(i,0,(int)n-1) 28 | #define DB(s,x) fprintf(stderr,s,x) 29 | #define MS0(x) memset(x,0,sizeof(x)) 30 | #define MS1(x) memset(x,1,sizeof(x)) 31 | #define SORT(a,n) sort(begin(a),begin(a)+n) 32 | #define REV(a,n) reverse(begin(a),begin(a)+n) 33 | #define ll long long 34 | #define MOD 1000000007 35 | struct point{ 36 | int x, y; 37 | }; 38 | 39 | point p, c; 40 | 41 | int offx = 0, of 42 | int w, h, n, x, y; 43 | char board[10000][10000]; 44 | 45 | int dist(point a,point b){ 46 | return (a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y); 47 | } 48 | 49 | void updateBoard(point p, point c, bool warm){ 50 | 51 | REP(i, h){ 52 | REP(j, w){ 53 | if (board[i][j] && dist(p, { j, i }) <= dist(c, { j, i })) 54 | board[i][j] = !warm; 55 | else if (board[i][j]) 56 | board[i][j] = warm; 57 | } 58 | } 59 | } 60 | 61 | void printCentroid(){ 62 | 63 | ll int n=0,sy = 0, sx = 0; 64 | point first = { -1, -1 }; 65 | REP(i, h){ 66 | REP(j, w){ 67 | if (board[i][j]){ 68 | if (first.x == -1){ 69 | first.x = j; 70 | first.y = i; 71 | } 72 | n++; 73 | sy += i; 74 | sx += j; 75 | } 76 | } 77 | } 78 | 79 | c.y = round((double)sy / n); 80 | c.x = round((double)sx / n); 81 | 82 | if (board[c.y][c.x]) 83 | board[c.y][c.x] = 0; 84 | else{ 85 | DB("Printing First", 0); 86 | c = first; 87 | } 88 | 89 | printf("%d %d\n", c.x, c.y); 90 | 91 | } 92 | 93 | void printMidPoint(point a, point b){ 94 | 95 | c.x = round((a.x + b.x) / 2), c.y = round((a.y + b.y) / 2); 96 | if (board[c.y][c.x]) 97 | board[c.y][c.x] = 0; 98 | else 99 | printCentroid(); 100 | printf("%d %d\n", c.x, c.y); 101 | } 102 | 103 | 104 | int main(){ 105 | 106 | char s[10]; 107 | scanf("%d%d%d%d%d", &w, &h,&n,&c.x,&c.y); 108 | fprintf(stderr,"%d %d\n%d\n%d %d\n", w, h, n, c.x, c.y); 109 | REP(i, h) 110 | REP(j, w) 111 | board[i][j] = 1; 112 | 113 | if (w >= 5000) 114 | w /= 4; 115 | if (h >= 5000) 116 | h /= 4; 117 | 118 | while (1){ 119 | scanf("%s", s); 120 | DB("Feedback = %s\n", s); 121 | if (s[0]=='W'){ 122 | updateBoard(p,c,1); 123 | p = c; 124 | printCentroid(); 125 | } 126 | else if (s[0]=='C'){ 127 | updateBoard(p, c, 0); 128 | p = c; 129 | printCentroid(); 130 | } 131 | else if (s[0]=='S'){ 132 | p = c; 133 | printMidPoint(p,c); 134 | } 135 | else{ 136 | p = c; 137 | printCentroid(); 138 | } 139 | } 140 | 141 | return 0; 142 | } 143 | 144 | // -------------------------------------------------------------------------------- /Games and Graphics/Animation.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | const int m = 20, n = 30; 8 | char board[m][n]; 9 | 10 | void choices(); 11 | void initializeBoard(); 12 | void printBoard(); 13 | void pattern1(); 14 | void pattern2(); 15 | void pattern3(); 16 | void pattern4(); 17 | void pattern5(); 18 | 19 | 20 | int main(){ 21 | choices(); 22 | initializeBoard(); 23 | printBoard(); 24 | char c = _getch(); 25 | while (c != 'x'){ 26 | switch (c){ 27 | case 'a': 28 | pattern1(); 29 | break; 30 | case 'b': 31 | pattern2(); 32 | break; 33 | 34 | case 'r': 35 | initializeBoard(); 36 | system("cls"); 37 | choices(); 38 | printBoard(); 39 | break; 40 | } 41 | c = _getch(); 42 | } 43 | } 44 | 45 | 46 | void choices() 47 | { 48 | 49 | printf("~~ Enter any char from a-z to see a pattern ~~ Press X to exit ~~"); 50 | } 51 | 52 | 53 | void initializeBoard(){ 54 | for (int i = 0; i < m*n; i++) 55 | board[i / n][i%n] = 176; 56 | } 57 | 58 | 59 | void printBoard() 60 | { 61 | for (int i = 0; i < m*n; i++){ 62 | if (i%n == 0) 63 | printf("\n"); 64 | printf("%c",board[i/n][i%n]); 65 | } 66 | } 67 | 68 | void pattern1(){ 69 | for (int i = 0; i = n - 1 ? n - 1 : k, i = k >= n - 1 ? k - n - 1 : 0; i < m&&j >= 0; j--, i++) 82 | board[i][j] = board[i][j] = 244 + i % 2; 83 | system("cls"); 84 | printBoard(); 85 | Sleep(50); 86 | } 87 | } 88 | 89 | 90 | 91 | 92 | 93 | 94 | // Integration Sign = board[i][j] = 244 + i%2; 95 | // Thick Grid = board[i][j] = 219+j%2; 96 | // Thin Grid = board[i][j] = 197 97 | // -------------------------------------------------------------------------------- /Games and Graphics/Box_Drawing_program.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | 5 | int main(){ 6 | char a[5] = { 220, 221, 222, 223 }; 7 | printf("%c%c%c\n%c%c%c\n%c%c%c\n", a[2], a[3], a[1], a[2], ' ', a[1], a[2], a[0], a[1]); 8 | _getch(); 9 | 10 | } -------------------------------------------------------------------------------- /Games and Graphics/Snake.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | void main(){ 9 | int posx = rand() % 20, posy = rand() % 20; 10 | int snake_length; 11 | int n=20; 12 | char board[20][20]; 13 | printf("Use the W,S,A,D keys to move\n"); 14 | for (int i = 0; i < n ; i++){ 15 | for (int j = 0; j < n ; j++){ 16 | board[i][j] = '.'; 17 | } 18 | } 19 | 20 | board[posy][posx] = '*'; 21 | for (int i = 0; i < n; i++){ 22 | for (int j = 0; j < n; j++){ 23 | printf("%c", board[i][j]); 24 | } 25 | printf("\n"); 26 | } 27 | char c1 = _getch(); 28 | while(c1 != 'o') 29 | 30 | { 31 | 32 | if (c1 == 'a'){ 33 | posx--; 34 | if (posx == -1) 35 | posx = n - 1; 36 | } 37 | 38 | else if (c1 == 'd'){ 39 | posx = (posx + 1) % n; 40 | } 41 | else if (c1 == 'w'){ 42 | posy--; 43 | if (posy == -1) 44 | posy = n - 1; 45 | } 46 | 47 | else if(c1 == 's'){ 48 | posy = (posy + 1) % n; 49 | } 50 | 51 | system("cls"); 52 | printf("Use the W,S,A,D keys to move\n"); 53 | for (int i = 0; i < n; i++){ 54 | for (int j = 0; j < n; j++){ 55 | board[i][j] = '.'; 56 | } 57 | } 58 | board[posy][posx] = '*'; 59 | for (int i = 0; i < n; i++){ 60 | for (int j = 0; j < n; j++){ 61 | printf("%c", board[i][j]); 62 | } 63 | printf("\n"); 64 | } 65 | 66 | 67 | Sleep(200); 68 | c1 = _getch(); 69 | } 70 | 71 | } 72 | -------------------------------------------------------------------------------- /Miscellaneous/2_Egg_Problem.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define MS0(x) memset(x,0,sizeof(x)) 35 | #define MS1(x) memset(x,1,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | int n = 10000; 43 | 44 | int a[2][1000001]; 45 | 46 | int main(){ 47 | 48 | FILE *fp = fopen("testcase.txt", "w"); 49 | FOR(i, 1, n) 50 | a[0][i] = i; 51 | fprintf(fp, "+----------+----------+\n"); 52 | fprintf(fp, "| Floors | Attempts |\n"); 53 | fprintf(fp, "+----------+----------+\n"); 54 | FOR(i, 1, n){ 55 | int least = a[0][i]; 56 | FOR(j, 1, i) 57 | least = min(least, 1 + max(a[0][j-1],a[1][i-j])); 58 | a[1][i] = least; 59 | fprintf(fp, "| %5d | %4d |\n", i, a[1][i]); 60 | } 61 | fprintf(fp, "+----------+----------+\n"); 62 | sp; 63 | return 0; 64 | } 65 | 66 | // -------------------------------------------------------------------------------- /Miscellaneous/ACM_ICPC_Ranking.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define DB(format,...) fprintf(stderr,format, ##__VA_ARGS__) 33 | #define pb(x) push_back(x) 34 | #define mp(a,b) make_pair(a,b) 35 | #define MS0(x) memset(x,0,sizeof(x)) 36 | #define MS1(x) memset(x,1,sizeof(x)) 37 | #define SORT(a,n) sort(begin(a),begin(a)+n) 38 | #define REV(a,n) reverse(begin(a),begin(a)+n) 39 | #define ll long long 40 | #define pii pair 41 | #define MOD 1000000007 42 | 43 | vector> ranklist; 44 | vector selected; 45 | 46 | bool compare(pair lhs, pair rhs) { 47 | return (lhs.second>rhs.second) || (lhs.second==rhs.second && lhs.first0 ) { 61 | string str(name); 62 | longestName = max((ll int)longestName, (ll int)str.size()); 63 | ranklist.push_back(mp(rank, str)); 64 | } 65 | printf("DONE READING\n"); 66 | 67 | map college; 68 | REP(i, ranklist.size()) { 69 | if (college.count(ranklist[i].second)==0) { 70 | selected.push_back(ranklist[i].second); 71 | college[ranklist[i].second]=1; 72 | } 73 | else { 74 | college[ranklist[i].second]++; 75 | } 76 | } 77 | printf("DONE\n"); 78 | 79 | vector> CollegeTeamCount(college.begin(), college.end()); 80 | sort(CollegeTeamCount.begin(), CollegeTeamCount.end(), compare); 81 | 82 | printf("Colleges Rank: \n"); 83 | REP(i, selected.size()) { 84 | printf("%3d %-s \n", i+1, selected[i].c_str()); 85 | } 86 | 87 | 88 | 89 | 90 | sp; 91 | 92 | return 0; 93 | } 94 | 95 | // -------------------------------------------------------------------------------- /Miscellaneous/AI.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main() 5 | { 6 | FILE *fp; 7 | fp = fopen("AI.c", "a+"); 8 | fprintf(fp, "%d ",1); 9 | _getch();printf("I am improving"); 10 | _getch();printf("I am improving"); 11 | _getch();printf("I am improving"); 12 | _getch();}1 -------------------------------------------------------------------------------- /Miscellaneous/Average_Distance_of_Pieces_on_Board.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | 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 | 27 | using namespace std; 28 | 29 | #define sp system("pause") 30 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 31 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 32 | #define REP(i,n) FOR(i,0,(int)n-1) 33 | #define DB(format,...) fprintf(stderr,format, ##__VA_ARGS__) 34 | #define pb(x) push_back(x) 35 | #define mp(a,b) make_pair(a,b) 36 | #define MS0(x) memset(x,0,sizeof(x)) 37 | #define MS1(x) memset(x,1,sizeof(x)) 38 | #define SORT(a,n) sort(begin(a),begin(a)+n) 39 | #define REV(a,n) reverse(begin(a),begin(a)+n) 40 | #define ll long long 41 | #define pii pair 42 | #define MOD 1000000007 43 | 44 | struct point { 45 | int x, y; 46 | }; 47 | 48 | inline double distance(point a, point b) { 49 | return sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y)); 50 | } 51 | 52 | int main(){ 53 | 54 | 55 | double sum = 0; 56 | int n = 0; 57 | 58 | REP(ai, 10) { 59 | REP(aj, 10) { 60 | REP(bi, 10) { 61 | REP(bj, 10) { 62 | point a = { aj, ai }, b = { bj, bi }; 63 | sum += distance(a, b); 64 | n++; 65 | } 66 | } 67 | } 68 | } 69 | 70 | printf("Sum = %lf\n", sum); 71 | printf("N = %d \n", n); 72 | printf("Avg = %lf\n", sum/n); 73 | sp; 74 | return 0; 75 | } 76 | 77 | // -------------------------------------------------------------------------------- /Miscellaneous/Binary_Printing.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | void printBinary(int n){ 7 | char bin[33]; 8 | bin[32] = '\0'; 9 | int count = sizeof(int)*8; 10 | while (count-- > 0){ 11 | if (n & 1) 12 | bin[count] = '1'; 13 | else 14 | bin[count] = '0'; 15 | n >>= 1; 16 | } 17 | puts(bin); 18 | } 19 | 20 | void main(){ 21 | 22 | unsigned int a = ~0; a <<= 1; 23 | unsigned int b = ~0; 24 | unsigned int c = b - a; 25 | printBinary( a ); 26 | 27 | printf("%u", a ); 28 | _getch(); 29 | } -------------------------------------------------------------------------------- /Miscellaneous/Bitmap_to_Pixel_Array.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | typedef struct { 5 | unsigned int width; 6 | unsigned int height; 7 | unsigned int planes; 8 | unsigned short bitcount; 9 | unsigned int size; 10 | } BITMAPINFOHEADER; 11 | 12 | typedef struct { 13 | unsigned char blue; 14 | unsigned char green; 15 | unsigned char red; 16 | } PIXEL; 17 | 18 | 19 | int main(){ 20 | 21 | FILE *image, *test; 22 | char fpath[1000], tpath[1000]; 23 | BITMAPINFOHEADER bih; 24 | int i = 0, b[8], g[8], r[8]; 25 | 26 | strcpy(fpath,"MyBMP_200.bmp"); 27 | 28 | image = fopen(fpath, "rb+"); 29 | 30 | while (image==NULL){ 31 | strcpy(fpath, "MyBMP.bmp"); 32 | image = fopen(fpath, "rb+"); 33 | } 34 | 35 | fseek(image, 2, SEEK_SET); 36 | fread(&bih.size, 4, 1, image); 37 | printf("Size=%d\n", bih.size); 38 | fseek(image, 18, SEEK_SET); 39 | fread(&bih.width, 4, 1, image); 40 | fseek(image, 22, SEEK_SET); 41 | fread(&bih.height, 4, 1, image); 42 | printf("Width=%d\tHeight=%d\n", bih.width, bih.height); 43 | fseek(image, 26, SEEK_SET); 44 | fread(&bih.planes, 2, 1, image); 45 | printf("Number of planes:%d\n", bih.planes); 46 | fseek(image, 28, SEEK_SET); 47 | fread(&bih.bitcount, 2, 1, image); 48 | printf("Bit Count:%d\n", bih.bitcount); 49 | 50 | PIXEL pic[1000000], p; 51 | 52 | strcpy(tpath, "test.txt"); 53 | 54 | test = fopen(tpath, "wb+"); 55 | 56 | fseek(image, 56+22*3, SEEK_SET); 57 | 58 | /*for(i=0;i 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | using namespace std; 22 | 23 | #define sp system("pause") 24 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 25 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 26 | #define REP(i,n) FOR(i,0,(int)n-1) 27 | #define MS0(x) memset(x,0,sizeof(x)) 28 | #define MS1(x) memset(x,1,sizeof(x)) 29 | #define SORT(a,n) sort(begin(a),begin(a)+n) 30 | #define REV(a,n) reverse(begin(a),begin(a)+n) 31 | #define ll long long 32 | #define MOD 1000000007 33 | #define gc getchar_unlocked 34 | struct Edge{ int v, w; }; 35 | 36 | int a[10]; 37 | 38 | int main(){ 39 | 40 | 41 | int n, t; 42 | scanf("%d", &t); 43 | REP(tt, t){ 44 | ll int limit, tot=0, sum = 0; 45 | scanf("%d", &n); 46 | limit = pow(n, n); 47 | REP(i, n) a[i] = 1; 48 | 49 | while (limit--){ 50 | a[0]++; 51 | int i = 0; 52 | while (a[i] > n){ 53 | a[i] = 1; 54 | a[++i]++; 55 | } 56 | int check = 1; 57 | REP(i, n){ 58 | if (a[i] == a[i + 1]){ 59 | check = 0; 60 | break; 61 | } 62 | } 63 | if (check){ 64 | tot++; 65 | int c[11], max = 0, p = 0; 66 | MS0(c); 67 | FORD(i, n - 1, 0){ 68 | if (++c[a[i]] > max) 69 | max = c[a[i]]; 70 | } 71 | FOR(i, 1, n){ 72 | if (c[i] == max) 73 | p++; 74 | } 75 | sum += p; 76 | } 77 | } 78 | double prob; 79 | if (n == 1) 80 | prob = 1; 81 | else 82 | prob = (double)sum / tot; 83 | printf("%.6llf\n",prob); 84 | 85 | } 86 | return 0; 87 | } 88 | 89 | // -------------------------------------------------------------------------------- /Miscellaneous/Counting_Sort.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #define MAX 1000000001 9 | using namespace std; 10 | 11 | char s[MAX]; 12 | int f[256]; 13 | 14 | void Counting_Sort(int n, char s[]){ 15 | 16 | for (int i = 0; i < n; i++) 17 | f[s[i]]++; 18 | 19 | } 20 | 21 | 22 | int main(){ 23 | 24 | srand(time(NULL)); 25 | 26 | long long int n, i; 27 | 28 | time_t t; 29 | for (n = 10000; n < MAX; n *= 10){ 30 | 31 | cout << "\nN = "< 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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define REP(i,n) FOR(i,0,(int)n-1) 34 | #define pb(x) push_back(x) 35 | #define mp(a,b) make_pair(a,b) 36 | #define MS0(x) memset(x,0,sizeof(x)) 37 | #define MS1(x) memset(x,1,sizeof(x)) 38 | #define SORT(a,n) sort(begin(a),begin(a)+n) 39 | #define REV(a,n) reverse(begin(a),begin(a)+n) 40 | #define ll long long 41 | #define pii pair 42 | #define MOD 1000000007 43 | 44 | 45 | 46 | int main(){ 47 | 48 | FILE *f1 = fopen("HackerRank_Full.txt", "r"); 49 | FILE *f2 = fopen("HackerRank_Win.txt", "r"); 50 | FILE *f3 = fopen("HackerRank_Win_sorted.txt", "w"); 51 | 52 | string s; 53 | map hash; 54 | int i = 1; 55 | vector> hash2; 56 | 57 | while(fscanf(f1,"%s" , s.c_str())>0){ 58 | if (hash.count(s.c_str())==0) 59 | hash[s.c_str()] = i++; 60 | else 61 | printf("'%s' already exists\n", s.c_str()); 62 | } 63 | 64 | while (fscanf(f2, "%s", s.c_str())>0) { 65 | hash2.push_back( mp(hash[s.c_str()], s.c_str()) ); 66 | } 67 | SORT(hash2, hash2.size()); 68 | REP(i, hash2.size()) 69 | fprintf(f3, "%s\n", hash2[i].second.c_str()); 70 | 71 | fclose(f1); 72 | fclose(f2); 73 | fclose(f3); 74 | 75 | sp; 76 | return 0; 77 | } 78 | 79 | // -------------------------------------------------------------------------------- /Miscellaneous/Eficient_Array_Reading.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | 6 | int a[100],i,n; 7 | for (i = scanf("%d",&n)-1;i < n;scanf("%d", &a[i++])); 8 | for (i = 0; i < n; printf("%d ", a[i++])); 9 | 10 | _getch(); 11 | } -------------------------------------------------------------------------------- /Miscellaneous/Fibonacci_Generator.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define MS0(x) memset(x,0,sizeof(x)) 35 | #define MS1(x) memset(x,1,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | int n = 1000; 43 | 44 | unsigned ll int f[1001]; 45 | 46 | int main(){ 47 | 48 | FILE *fp = fopen("testcase.txt", "w"); 49 | f[0] = 0; 50 | f[1] = 1; 51 | f[2] = 1; 52 | fprintf(fp, "+----------+----------+\n"); 53 | fprintf(fp, "| Fibonacci |\n"); 54 | fprintf(fp, "+----------+----------+\n"); 55 | FOR(i, 3, n){ 56 | f[i] = f[i - 1] + f[i - 2]; 57 | if (f[i] < f[i-1]) 58 | break; 59 | fprintf(fp, "|%20llu |\n", f[i]); 60 | } 61 | fprintf(fp, "+----------+----------+\n"); 62 | fclose(fp); 63 | sp; 64 | return 0; 65 | } 66 | 67 | // -------------------------------------------------------------------------------- /Miscellaneous/Flags.cpp: -------------------------------------------------------------------------------- 1 | /*This is a program to understand flags in C*/ 2 | 3 | #include 4 | #include 5 | 6 | 7 | void main(){ 8 | 9 | int a[3][3] = { -1, 7, 13, -16, 8, 100, 5, -6, 0 }; 10 | 11 | 12 | for (int i = 0; i < 3; i++){ 13 | for (int j = 0; j < 3; j++) 14 | 15 | 16 | printf(" %d ", a[i][j]); 17 | 18 | printf("\n"); 19 | } 20 | 21 | _getch(); 22 | 23 | 24 | } -------------------------------------------------------------------------------- /Miscellaneous/Font_Colour_Test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | 6 | char a = "a"; 7 | printf("%c",a); 8 | _getch(); 9 | 10 | 11 | } -------------------------------------------------------------------------------- /Miscellaneous/GTC.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main(){ 4 | 5 | int c = 0; 6 | for (int i = 10000; i <= 99999; i++) 7 | if (i % 4 == 0) c++; 8 | printf("5 digit numbers divisible by 4 is %d\n\n", c); 9 | system("pause"); 10 | } -------------------------------------------------------------------------------- /Miscellaneous/Geeks for Geeks Minimax.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int values[4] = { 3, 5, 2, 9 }; 7 | 8 | int minimax(int depth, int nodeIndex, bool maximizingPlayer) { 9 | 10 | if (depth == 2) { // Terminating condition. i.e leaf node is reached 11 | return values[nodeIndex]; 12 | } 13 | 14 | 15 | if (maximizingPlayer) { 16 | int best = -1000; 17 | 18 | int leftValue = minimax(depth+1, nodeIndex*2, false); // Left Child 19 | best = max(best, leftValue); 20 | 21 | int rightValue = minimax(depth+1, nodeIndex*2 + 1, false); // Right Child 22 | best = max(best, rightValue); 23 | 24 | return best; 25 | } 26 | else { 27 | int best = 1000; 28 | 29 | int leftValue = minimax(depth+1, nodeIndex*2, false); // Left Child 30 | best = min(best, leftValue); 31 | 32 | int rightValue = minimax(depth+1, nodeIndex*2 + 1, false); // Right Child 33 | best = min(best, rightValue); 34 | 35 | return best; 36 | } 37 | 38 | } 39 | 40 | int main() { 41 | 42 | int res = minimax(0, 0, true); 43 | 44 | cout<<"The optimal value is : "< 2 | #include 3 | 4 | using namespace std; 5 | 6 | 7 | int minimax(int depth, int nodeIndex, bool maximizingPlayer, 8 | int values[], int alpha, int beta) { 9 | 10 | if (depth == 3) { 11 | // Terminating condition. i.e leaf node is reached 12 | return values[nodeIndex]; 13 | } 14 | 15 | 16 | if (maximizingPlayer) { 17 | int best = -1000; 18 | for (int i = 0; i<2; i++) { 19 | int val = minimax(depth+1, nodeIndex*2+i, 20 | false, values, alpha, beta); 21 | best = max( best, val); 22 | alpha = max(alpha, best); 23 | if (beta <= alpha) // Condition Checking 24 | break; 25 | } 26 | return best; 27 | } 28 | else { 29 | int best = +1000; 30 | 31 | for (int i = 0; i<2; i++) { 32 | int val = minimax(depth+1, nodeIndex*2+i, 33 | true, values, alpha, beta); 34 | best = min(best, val); 35 | beta = min(beta, best); 36 | if (beta <= alpha) // Condition Checking 37 | break; 38 | } 39 | return best; 40 | } 41 | 42 | } 43 | 44 | int main() { 45 | 46 | // Static Values 47 | int values[8] = { 3, 5, 6, 9, 1, 2, 0, -1 }; 48 | int res = minimax(0, 0, true, values, -1000, +1000); 49 | 50 | cout << "The optimal value is : " << res < 2 | #include 3 | 4 | using namespace std; 5 | 6 | // Returns a value based on who is winning 7 | // b[3][3] is the Tic-Tac-Toe board 8 | int evaluate(char b[3][3]) { 9 | 10 | // Checking for Rows for X or O victory. 11 | for (int row = 0; row<3; row++) { 12 | if (b[row][0]==b[row][1] && b[row][1]==b[row][2]) { 13 | if (b[0][row]=='x') { 14 | return +10; 15 | } 16 | else if (b[0][row]=='o') { 17 | return -10; 18 | } 19 | } 20 | } 21 | 22 | // Checking for Columns for X or O victory. 23 | for (int col = 0; col<3; col++) { 24 | if (b[0][col]==b[1][col] && b[1][col]==b[2][col]) { 25 | if (b[0][col]=='x') { 26 | return +10; 27 | } 28 | else if (b[0][col]=='o') { 29 | return -10; 30 | } 31 | } 32 | } 33 | 34 | // Checking for Diagonals for X or O victory. 35 | if (b[0][0]==b[1][1] && b[1][1]==b[2][2]) { 36 | if (b[0][0]=='x') { 37 | return +10; 38 | } 39 | else if (b[0][0]=='o') { 40 | return -10; 41 | } 42 | } 43 | if (b[0][2]==b[1][1] && b[1][1]==b[2][0]) { 44 | if (b[0][2]=='x') { 45 | return +10; 46 | } 47 | else if (b[0][2]=='o') { 48 | return -10; 49 | } 50 | } 51 | 52 | 53 | // Else if none of them have won then return 0 54 | return 0; 55 | 56 | 57 | } 58 | 59 | int main() { 60 | 61 | char board[3][3]; 62 | 63 | for (int i = 0; i<3; i++) { 64 | for (int j = 0; j<3; j++) { 65 | scanf("%c", &board[i][j]); // Take the input from the user 66 | } 67 | getchar(); // Read newline character 68 | } 69 | 70 | int value = evaluate(board); 71 | printf("The value of this board is %d\n", value); 72 | getchar(); 73 | return 0; 74 | } -------------------------------------------------------------------------------- /Miscellaneous/GeeksForGeeks_Zorbist_Hashing.cpp: -------------------------------------------------------------------------------- 1 | // A program to illustrate Zorbist Hashing Algorithm 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | unsigned long long int ZorbistTable[8][8][12]; 11 | mt19937 mt(01234567); 12 | 13 | // Generates a Randome number from 0 to 2^64-1 14 | unsigned long long int randomInt() { 15 | 16 | uniform_int_distribution dist(0, UINT64_MAX); 17 | return dist(mt); 18 | 19 | } 20 | 21 | // This function associates each piece with a given number 22 | int indexOf(char piece) { 23 | 24 | if (piece=='P') { 25 | return 0; 26 | } 27 | else if (piece=='N') { 28 | return 1; 29 | } 30 | else if (piece=='B') { 31 | return 2; 32 | } 33 | else if (piece=='R') { 34 | return 3; 35 | } 36 | else if (piece=='Q') { 37 | return 4; 38 | } 39 | else if (piece=='K') { 40 | return 5; 41 | } 42 | if (piece=='p') { 43 | return 6; 44 | } 45 | else if (piece=='n') { 46 | return 7; 47 | } 48 | else if (piece=='b') { 49 | return 8; 50 | } 51 | else if (piece=='r') { 52 | return 9; 53 | } 54 | else if (piece=='q') { 55 | return 10; 56 | } 57 | else if (piece=='k') { 58 | return 11; 59 | } 60 | else { 61 | return -1; 62 | } 63 | 64 | } 65 | 66 | // Initializes the table 67 | void initTable() { 68 | 69 | for (int i = 0; i<8; i++) { 70 | for (int j = 0; j<8; j++) { 71 | for (int k = 0; k<12; k++) { 72 | ZorbistTable[i][j][k] = randomInt(); 73 | } 74 | } 75 | } 76 | 77 | } 78 | 79 | // Computes the hash value of a given board 80 | unsigned long long int computeHash(char board[8][9]) { 81 | 82 | unsigned long long int h = 0; 83 | 84 | for (int i = 0; i<8; i++) { 85 | for (int j = 0; j<8; j++) { 86 | if (board[i][j]!='-') { 87 | int piece = indexOf(board[i][j]); 88 | h ^= ZorbistTable[i][j][piece]; 89 | } 90 | } 91 | } 92 | return h; 93 | } 94 | 95 | // Main Function 96 | int main(){ 97 | 98 | // Uppercase letters are white pieces 99 | // Lowercase letters are black pieces 100 | char board[8][9] = { 101 | "---K----", 102 | "-R----Q-", 103 | "--------", 104 | "-P----p-", 105 | "-----p--", 106 | "--------", 107 | "p---b--q", 108 | "----n--k" 109 | }; 110 | 111 | initTable(); 112 | 113 | unsigned long long int hashValue = computeHash(board); 114 | printf("The hash value is : %llu\n", hashValue); 115 | 116 | //Move the white king to the left 117 | char piece = board[0][3]; 118 | 119 | board[0][3] = '-'; 120 | hashValue ^= ZorbistTable[0][3][indexOf(piece)]; 121 | 122 | board[0][2] = piece; 123 | hashValue ^= ZorbistTable[0][2][indexOf(piece)]; 124 | 125 | 126 | printf("The new hash vlaue is : %llu\n", hashValue); 127 | 128 | // Undo the white king move 129 | piece = board[0][2]; 130 | 131 | board[0][2] = '-'; 132 | hashValue ^= ZorbistTable[0][2][indexOf(piece)]; 133 | 134 | board[0][3] = piece; 135 | hashValue ^= ZorbistTable[0][3][indexOf(piece)]; 136 | 137 | printf("The old hash vlaue is : %llu\n", hashValue); 138 | 139 | return 0; 140 | } -------------------------------------------------------------------------------- /Miscellaneous/Gotcha_10.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | void main() 3 | { 4 | int i = 0; 5 | if (i == 0) 6 | { 7 | printf("Hello"); 8 | break; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Miscellaneous/Gotcha_14.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | void main() 4 | { 5 | int s = 0; 6 | while (s++<10) 7 | { 8 | if (s<4 && s<9) 9 | continue; 10 | printf("\n%d\t", s); 11 | } 12 | _getch(); 13 | } -------------------------------------------------------------------------------- /Miscellaneous/Gotcha_34.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main(){ 4 | printf("C\question\bank"); 5 | _getch(); 6 | return 0; 7 | } -------------------------------------------------------------------------------- /Miscellaneous/Gotcha_60.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(){ 5 | int i = 0; 6 | do 7 | { 8 | i++; 9 | if (i == 2) 10 | continue; 11 | printf("In while loop "); 12 | } while (i < 2); 13 | printf("%d\n", i); 14 | _getch(); 15 | } -------------------------------------------------------------------------------- /Miscellaneous/Gotcha_9.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int b[2]; 5 | void main() 6 | { 7 | static int a[2]; 8 | int i; 9 | for (i = 0; i <= 1; i++) 10 | { 11 | printf("%d\t%d", a[i], b[i]); 12 | } 13 | _getch(); 14 | } -------------------------------------------------------------------------------- /Miscellaneous/HackerEarth_Score_Calculator.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Miscellaneous/India_Map.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void main(){ 4 | int a,b,c; 5 | for (b=c=10; a="- FIGURE?, UMKC,XYZHello Folks,\ 6 | TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ 7 | UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\ 8 | NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\ 9 | HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\ 10 | T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\ 11 | Hq!WFs XDt!"[b+++21]; ){ 12 | 13 | for(; a-->64 ; ) 14 | putchar( ++c=='Z' ? c = c/ 9:33^b&1); 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /Miscellaneous/Internship_Assignment_2.cpp: -------------------------------------------------------------------------------- 1 | 2 | /*~~~~~~~~~~~~~~~~~~* 3 | * * 4 | * $Dollar Akshay$ * 5 | * * 6 | *~~~~~~~~~~~~~~~~~~*/ 7 | 8 | // 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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define ll long long 34 | 35 | int n, m; 36 | ll int DP[10000][10000]; 37 | int a[10000][10000]; 38 | 39 | ll int solve(int i, int j) { 40 | 41 | if (j>=m || i>=n) // Terminating Condition if i and j go out of bounds 42 | return 0; 43 | 44 | if (DP[i][j]>0) // If the value is already calculated then return the value 45 | return DP[i][j]; 46 | 47 | 48 | if (i==n-1 && j==m-1) // If it is the bottom most right corner then return that value 49 | DP[i][j] = a[i][j]; 50 | else 51 | DP[i][j] = a[i][j] + max(solve(i+1, j), solve(i, j+1)); // Else find the maximum of the right and down values 52 | 53 | 54 | return DP[i][j]; 55 | 56 | } 57 | 58 | int main() { 59 | 60 | int t; 61 | printf("Enter no of Testcases : "); 62 | scanf("%d", &t); 63 | FOR(tc, 1, t) { 64 | printf("\nEnter size of the table : "); 65 | scanf("%d %d", &n, &m); 66 | 67 | printf("\nEnter the Matrix :\n"); 68 | FOR(i, 0, n-1) 69 | FOR(j, 0, m-1) 70 | scanf("%d", &a[i][j]); 71 | 72 | 73 | printf("\nAns = %lld\n", solve(0, 0)); 74 | 75 | FOR(i, 0, n-1) 76 | FOR(j, 0, m-1) 77 | DP[i][j] = 0; 78 | 79 | } 80 | printf("\n"); 81 | sp; 82 | return 0; 83 | } 84 | 85 | //Solved O(m*n) 86 | -------------------------------------------------------------------------------- /Miscellaneous/Kothis_Code.cpp: -------------------------------------------------------------------------------- 1 | 2 | // Aishwarya 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | int mat[100][100]; 10 | int i, j, row, col; 11 | int maxint(int a, int b) 12 | { 13 | if (a>b) 14 | return a; 15 | else 16 | return b; 17 | } 18 | 19 | int findMax(int i, int j) 20 | { 21 | int pebbles; 22 | if (i>row-1 || j>col-1) 23 | { 24 | return 0; 25 | } 26 | else if (i==row-1 && j==col-1) 27 | { 28 | return mat[i][j]; 29 | } 30 | else 31 | { 32 | pebbles = mat[i][j]+ maxint(findMax(i, j+1), findMax(i+1, j)); 33 | 34 | return pebbles; 35 | } 36 | } 37 | 38 | int main() 39 | { 40 | int result; 41 | printf("Enter the number of columns\n"); 42 | scanf("%d", &col); 43 | printf("Enter the number of rows\n"); 44 | scanf("%d", &row); 45 | printf("Enter the matrix\n"); 46 | for (i = 0; i 2 | #include 3 | 4 | int num[160]; 5 | 6 | int getZero(){ 7 | int i = 159; 8 | while (num[i] == 0 && i)i--; 9 | return i; 10 | 11 | } 12 | 13 | void factorial(int n){ 14 | int carry = 0, prod; 15 | while (n){ 16 | for (int i = 0; i <= getZero() || carry>0; i++){ 17 | prod = num[i] * n + carry; 18 | carry = prod / 10; 19 | num[i] = prod % 10; 20 | } 21 | n--; 22 | } 23 | } 24 | 25 | void printArray(){ 26 | int i = getZero() + 1; 27 | while (i--) { 28 | printf("%d", num[i]); 29 | num[i] = 0; 30 | } 31 | printf("\n"); 32 | } 33 | 34 | int main() 35 | { 36 | int t, n; 37 | scanf("%d", &t); 38 | for (int i = 0; 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 | 29 | using namespace std; 30 | 31 | #define sp system("pause") 32 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 33 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 34 | #define REP(i,n) FOR(i,0,(int)n-1) 35 | #define pb(x) push_back(x) 36 | #define mp(a,b) make_pair(a,b) 37 | #define MS0(x) memset(x,0,sizeof(x)) 38 | #define MS1(x) memset(x,1,sizeof(x)) 39 | #define SORT(a,n) sort(begin(a),begin(a)+n) 40 | #define REV(a,n) reverse(begin(a),begin(a)+n) 41 | #define ll long long 42 | #define pii pair 43 | #define MOD 1000000007 44 | 45 | class State { 46 | 47 | public: 48 | int faces[6][3][3]; 49 | 50 | State() { 51 | REP(k, 6) { 52 | REP(i, 3) 53 | REP(j, 3) 54 | faces[k][i][j] = k; 55 | } 56 | } 57 | 58 | bool operator<(const State& rhs) const { 59 | 60 | REP(k, 6) { 61 | REP(j, 3) { 62 | REP(i, 3) { 63 | if (faces[k][j][i] != rhs.faces[k][j][i]) 64 | return faces[k][j][i] < rhs.faces[k][j][i]; 65 | } 66 | } 67 | } 68 | return false; 69 | 70 | } 71 | }; 72 | 73 | int main() { 74 | 75 | map> parent; 76 | 77 | State s, copy; 78 | 79 | copy.faces[0][0][0] = 100; 80 | 81 | parent[s] = make_pair('a', copy); 82 | 83 | pair temp = parent[s]; 84 | 85 | printf("Temp.first = %c\n", temp.first); 86 | printf("Temp.second = "); 87 | REP(i, 6) 88 | printf("%d, ", temp.second.faces[i]); 89 | printf("\n"); 90 | sp; 91 | return 0; 92 | 93 | 94 | 95 | } 96 | 97 | // 98 | #endif // 0 99 | -------------------------------------------------------------------------------- /Miscellaneous/Microsoft Palette Createor.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define REP(i,n) FOR(i,0,(int)n-1) 34 | #define DB(format,...) fprintf(stderr,format, ##__VA_ARGS__) 35 | #define pb(x) push_back(x) 36 | #define mp(a,b) make_pair(a,b) 37 | #define MS0(x) memset(x,0,sizeof(x)) 38 | #define MS1(x) memset(x,1,sizeof(x)) 39 | #define SORT(a,n) sort(begin(a),begin(a)+n) 40 | #define REV(a,n) reverse(begin(a),begin(a)+n) 41 | #define ll long long 42 | #define pii pair 43 | #define MOD 1000000007 44 | 45 | int main(){ 46 | 47 | FILE* out = fopen("C:\\Users\\Akshay L Aradhya\\Desktop\\reslut.pal", "w"); 48 | 49 | fprintf(out, "%c%c%c%c%c%c%c%c", 0x52, 0x49, 0x46, 0x46, 0x10, 0x04, 0x00, 0x00); 50 | fprintf(out, "%c%c%c%c%c%c%c%c", 0x50, 0x41, 0x4C, 0x20, 0x64, 0x61, 0x74, 0x61); 51 | fprintf(out, "%c%c%c%c%c%c%c%c", 0x04, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01); 52 | printf("Enter RGB Values :\n"); 53 | REP(i, 256) { 54 | int r, g, b; 55 | scanf("%d %d %d", &r, &g, &b); 56 | fprintf(out, "%c%c%c%c", (char)r%256, (char)g%256, (char)b%256, 0); 57 | } 58 | fclose(out); 59 | sp; 60 | return 0; 61 | } 62 | 63 | // -------------------------------------------------------------------------------- /Miscellaneous/No_of_Squares.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | main( a[5] ){ 4 | 5 | int t; 6 | printf("%d",t); 7 | t = 5; 8 | while (t--)printf("%d", a[t]); 9 | _getch(); 10 | } -------------------------------------------------------------------------------- /Miscellaneous/Number_of_Digits.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | int n,d=0; 6 | scanf("%d", &n); 7 | while (n > 0){ 8 | n /= 10; 9 | d++; 10 | } 11 | printf("No. of Digits : %d", d); 12 | _getch(); 13 | } -------------------------------------------------------------------------------- /Miscellaneous/Playing_Around_with_Stack_Size.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #define sp system("pause") 3 | 4 | using namespace std; 5 | 6 | 7 | int main(){ 8 | 9 | #define N 100 10 | int a[N],i; 11 | for (i = 0; i < N; i++) 12 | a[i] = i + 1; 13 | for (i = 0; i < N; i+=N/10) 14 | cout << " " << a[i]; 15 | cout << endl; 16 | sp; 17 | return 0; 18 | } -------------------------------------------------------------------------------- /Miscellaneous/Problem.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | 5 | void main(){ 6 | 7 | int i, a[4]; 8 | for (i = 0; i <= 9999; i++){ 9 | int x = i,j=0; 10 | while (x) a[j++]=x%10,x/=10; 11 | if (a[0]==2*a[3] && a[1]==a[2] && a[3]*20+2*a[2]==a[1]*10+a[0]) 12 | printf("%d\n", i); 13 | } 14 | printf("Done Looping\n"); 15 | _getch(); 16 | } -------------------------------------------------------------------------------- /Miscellaneous/Program2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | int n, c = 0,i; 6 | for (i = 1; i <= 10; i++){ 7 | scanf("%d", &n); 8 | if (n % 5 == 0 && n % 3 == 0) 9 | c++; 10 | } 11 | printf("Numbers divisible by 3 & 5 : %d", c); 12 | _getch(); 13 | } -------------------------------------------------------------------------------- /Miscellaneous/Program_4.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void main(){ 6 | int n, sum=0,t; 7 | 8 | //Input n 9 | printf("Enter a 3 digit number :"); 10 | scanf("%d", &n); 11 | t = n; 12 | 13 | while (t != 0){ 14 | sum += pow( (double)(t%10), (double) 3); 15 | t /= 10; 16 | } 17 | 18 | if (sum == n) 19 | printf("It is armstrong"); 20 | else 21 | printf("It is not armstrong"); 22 | 23 | _getch(); 24 | } -------------------------------------------------------------------------------- /Miscellaneous/Program_5.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | int n,sum=0,i; 6 | 7 | scanf("%d", &n); 8 | 9 | for (i = 1; i <= n; i += 2){ 10 | if (i % 3 == 0 && i % 5 == 0) 11 | sum += i; 12 | } 13 | 14 | printf("Sum : %d", d); 15 | _getch(); 16 | } -------------------------------------------------------------------------------- /Miscellaneous/Program_6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | #define sp system("pause") 17 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 18 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 19 | #define REP(i,n) FOR(i,0,(int)n-1) 20 | #define MS0(x) memset(x,0,sizeof(x)) 21 | #define MS1(x) memset(x,1,sizeof(x)) 22 | #define SORT(a,n) sort(begin(a),begin(a)+n) 23 | #define REV(a,n) reverse(begin(a),begin(a)+n) 24 | #define ll long long 25 | #define MOD 1000000007 26 | #define gc getchar_unlocked 27 | struct Edge{ int v, w; }; 28 | 29 | void main(){ 30 | 31 | FILE *fp = fopen("data.txt", "w"); 32 | int a[8] = { 1, 3, 5, 7, 9, 11, 13, 15 }; 33 | REP(i, 8) REP(j, 8) REP(k, 8) REP(l, 8) REP(m, 8){ 34 | int sum = a[i] + a[j] + a[k] + a[l] + a[m]; 35 | fprintf(fp,"%d + %d + %d + %d + %d = %d\n", a[i], a[j], a[k], a[l], a[m], sum); 36 | } 37 | fclose(fp); 38 | sp; 39 | } -------------------------------------------------------------------------------- /Miscellaneous/Quora_Check_Digit.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | int a[] = { 2, 3, 5, 7 }; 5 | 6 | long long int check(long long int n){ 7 | 8 | long long int i = 0, s = 0; 9 | while (n){ 10 | s += n%10*a[i++%4]; 11 | n /= 10; 12 | } 13 | return s; 14 | } 15 | 16 | int main() { 17 | 18 | long long int n; 19 | cin>>n; 20 | while (n>9){ 21 | long long int t = n; 22 | n = check(n); 23 | if (t==n) 24 | break; 25 | } 26 | cout<<"Answer = "< 2 | int main(int n) { 3 | printf("%d%s", 1? 6,"Aksahy":5,"NI"); 4 | getchar(); 5 | return 0; 6 | } 7 | 8 | // -------------------------------------------------------------------------------- /Miscellaneous/Quora_Question_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(void){ 5 | 6 | int arr[] = { 1, 1, 2 }; 7 | int t = 1; 8 | int n = 3; 9 | for (int i = 0; i=n, it means it has already been referred to multiple times */ 13 | if (newIndex>=n) 14 | newIndex -= n; 15 | 16 | /* if this position is <0 , it means we have referred to this element exactly once */ 17 | else if (newIndex < 0) 18 | newIndex += n; 19 | 20 | /* if element is occuring for the second time */ 21 | if (arr[newIndex]<0) 22 | { 23 | printf("%d ", newIndex); 24 | arr[newIndex] += 2*n; 25 | } 26 | /*if the element newIndex refers to is occuring for the first time */ 27 | else if (arr[newIndex] 10 | #include 11 | 12 | using namespace std; 13 | 14 | #define sp system("pause") 15 | #define ll long long 16 | 17 | ll int DP[1000000]; 18 | 19 | ll int ways(int n) { 20 | 21 | if (n<0) 22 | return 0; 23 | if (DP[n]) 24 | return DP[n]; 25 | 26 | if (n==0) 27 | DP[n] = 1; 28 | else 29 | DP[n] = ways(n-1) + ways(n-2) + ways(n-3) + ways(n-4); 30 | 31 | return DP[n]; 32 | 33 | } 34 | 35 | int main(){ 36 | 37 | int n; 38 | printf("Enter number of steps : "); 39 | scanf("%d", &n); 40 | printf("Number of ways = %d\n", ways(n)); 41 | 42 | for (int i = 1; i <=n; i++) 43 | printf(", %d", DP[i]); 44 | sp; 45 | return 0; 46 | } 47 | 48 | // -------------------------------------------------------------------------------- /Miscellaneous/Random_Numbers_C++11.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | 8 | int main() { 9 | 10 | mt19937 mt(26640195); 11 | uniform_int_distribution dist(1, 1000000); 12 | for (int i = 0; i<100; i++) { 13 | printf("%7d\n", dist(mt)); 14 | Sleep(500); 15 | } 16 | system("pause"); 17 | } 18 | 19 | //Works :) -------------------------------------------------------------------------------- /Miscellaneous/Restart PC.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | void main() { 3 | system("shutdown -r"); 4 | } -------------------------------------------------------------------------------- /Miscellaneous/SPOJ_The_Turtle's_Shortest_Path.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | //http://www.spoj.com/problems/TSHPATH/ 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 | 27 | using namespace std; 28 | 29 | #define sp system("pause") 30 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 31 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 32 | #define REP(i,n) FOR(i,0,(int)n-1) 33 | #define pb(x) push_back(x) 34 | #define mp(a,b) make_pair(a,b) 35 | #define MS0(x) memset(x,0,sizeof(x)) 36 | #define MS1(x) memset(x,1,sizeof(x)) 37 | #define SORT(a,n) sort(begin(a),begin(a)+n) 38 | #define REV(a,n) reverse(begin(a),begin(a)+n) 39 | #define ll long long 40 | #define pii pair 41 | #define MOD 1000000007 42 | #define MAX 200001 43 | #define gc getchar 44 | 45 | struct edge{ 46 | int v, w; 47 | }; 48 | 49 | 50 | void scanint(int &x){ 51 | register int c = gc(); 52 | x = 0; 53 | for (; (c<48 || c>57); c = gc()); 54 | for (; c>47 && c<58; c = gc()) { x = (x << 1) + (x << 3) + c - 48; } 55 | } 56 | 57 | vector ans[10000]; 58 | vector g[10000]; 59 | 60 | class compare{ 61 | public: 62 | bool operator()(edge& l, edge& y){ 63 | return l.w > y.w; 64 | } 65 | }; 66 | 67 | void dijkstra(int n, int s){ 68 | 69 | priority_queue, compare> q; 70 | 71 | REP(i, n) 72 | ans[s].pb(MAX); 73 | 74 | 75 | ans[s][s] = 0; 76 | q.push({ s, 0 }); 77 | int u = s, c = 0; 78 | 79 | while (!q.empty()){ 80 | edge e = q.top(); 81 | q.pop(); 82 | int u = e.v; 83 | if (e.w<=ans[s][u]){ 84 | REP(i, g[u].size()){ 85 | if (ans[s][u]+g[u][i].w city; 103 | 104 | scanint(n); 105 | REP(i, n){ 106 | scanf("%s", c); 107 | city[c] = i; 108 | scanint(m); 109 | REP(j, m){ 110 | int w, v; 111 | scanint(v); 112 | scanint(w); 113 | g[i].push_back({ v-1, w }); 114 | } 115 | } 116 | int q; 117 | scanf("%d", &q); 118 | REP(i, q){ 119 | char c1[11], c2[11]; 120 | scanf("%s %s", c1, c2); 121 | int start = city[c1], end = city[c2]; 122 | if (ans[start].size()==0) 123 | dijkstra(n, start); 124 | printf("%d\n", ans[start][end]); 125 | } 126 | REP(i, n){ 127 | ans[i].clear(); 128 | g[i].clear(); 129 | } 130 | 131 | } 132 | sp; 133 | return 0; 134 | } 135 | 136 | //Solved -------------------------------------------------------------------------------- /Miscellaneous/Series.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void main(){ 5 | int n,i; 6 | 7 | //Input n 8 | scanf("%d", &n); 9 | 10 | for (i = 1; i <= n; i=i*10+1){ 11 | printf("%d ", i); 12 | } 13 | _getch(); 14 | } -------------------------------------------------------------------------------- /Miscellaneous/Set_Graph_Permuattion_Operations.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 28 | using namespace std; 29 | 30 | #define sp system("pause") 31 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 32 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 33 | #define REP(i,n) FOR(i,0,(int)n-1) 34 | #define DB(format,...) fprintf(stderr,format, ##__VA_ARGS__) 35 | #define pb(x) push_back(x) 36 | #define mp(a,b) make_pair(a,b) 37 | #define MS0(x) memset(x,0,sizeof(x)) 38 | #define MS1(x) memset(x,1,sizeof(x)) 39 | #define SORT(a,n) sort(begin(a),begin(a)+n) 40 | #define REV(a,n) reverse(begin(a),begin(a)+n) 41 | #define ll long long 42 | #define pii pair 43 | #define MOD 1000000007 44 | 45 | int n; 46 | 47 | int v[100000]; 48 | set> all; 49 | 50 | void DFS(vector a) { 51 | 52 | if (a.size()==n) { 53 | all.insert(a); 54 | return; 55 | } 56 | 57 | FOR(i, 1, n) { 58 | if (v[i]==0) { 59 | a.push_back(i); 60 | v[i] = 1; 61 | DFS(a); 62 | a.pop_back(); 63 | v[i] = 0; 64 | } 65 | } 66 | 67 | } 68 | 69 | set> subsetHavingEdge(set> s, int u, int v) { 70 | 71 | set> sub; 72 | 73 | 74 | 75 | } 76 | 77 | void printSet(set> s) { 78 | 79 | int k = 0; 80 | for (auto it = s.begin(); it!=s.end(); it++) { 81 | REP(i, n) 82 | printf("%d ", it->at(i)); 83 | if (++k%6==0) 84 | printf("\n"); 85 | else 86 | printf("\t"); 87 | } 88 | 89 | } 90 | 91 | int main(){ 92 | 93 | scanf("%d", &n); 94 | vector a; 95 | DFS(a); 96 | printSet(all); 97 | 98 | sp; 99 | return 0; 100 | } 101 | 102 | // -------------------------------------------------------------------------------- /Miscellaneous/Stackoverflow_Debugging.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | GLuint head_x1 = 5, head_y1 = 30, head_x2 = 15, head_y2 = 30, head_x3 = 15, head_y3 = 40, head_x4 = 5, head_y4 = 40; 5 | 6 | // shape 7 | GLuint listID; 8 | 9 | void MrRobot(GLsizei displayListID){ 10 | 11 | glNewList(displayListID, GL_COMPILE); 12 | 13 | //Save current colour state 14 | glPushAttrib(GL_CURRENT_BIT); 15 | 16 | // body 17 | glColor3f(0.5, 0.5, 0.5); 18 | glBegin(GL_POLYGON); 19 | glVertex2f(0, 10); 20 | glVertex2f(20, 10); 21 | glVertex2f(20, 30); 22 | glVertex2f(0, 30); 23 | glEnd(); 24 | 25 | // head 26 | glColor3f(0, 0, 1); 27 | glBegin(GL_POLYGON); 28 | glVertex2f(head_x1, head_y1); 29 | glVertex2f(head_x2, head_y2); 30 | glVertex2f(head_x3, head_y3); 31 | glVertex2f(head_x4, head_y4); 32 | glEnd(); 33 | 34 | // legs 35 | glColor3f(1, 0, 0); 36 | glBegin(GL_TRIANGLE_FAN); 37 | glVertex2f(10, 10); 38 | glVertex2f(20, 0); 39 | glVertex2f(10, -5); 40 | glVertex2f(0, 0); 41 | glEnd(); 42 | 43 | // right hand 44 | glColor3f(0, 1, 0); 45 | glBegin(GL_TRIANGLES); 46 | glVertex2f(20, 30); 47 | glVertex2f(30, 27.5); 48 | glVertex2f(20, 25); 49 | glEnd(); 50 | 51 | // left hand 52 | glColor3f(0, 1, 0); 53 | glBegin(GL_TRIANGLES); 54 | glVertex2f(-10, 27.5); 55 | glVertex2f(0, 30); 56 | glVertex2f(0, 25); 57 | glEnd(); 58 | 59 | //Recall saved colour state 60 | glPopAttrib(); 61 | 62 | glEndList(); 63 | } 64 | 65 | void display(){ 66 | 67 | glClearColor(0, 0, 0, 0); 68 | 69 | glClear(GL_COLOR_BUFFER_BIT); 70 | glLoadIdentity(); 71 | glColor3f(1, 0, 0); 72 | 73 | //Defining a modelview transform matrix 74 | glScalef(0.3, 0.3, 0.3); 75 | 76 | //Execute the display list (the modelview matrix will be applied) 77 | glCallList(listID); 78 | MrRobot(listID); 79 | 80 | glFlush(); 81 | } 82 | 83 | void keyboard(unsigned char key, int x, int y){ 84 | 85 | printf("\nKeyboard event detected. \nCharacter key: %c\nMouse pointer position: x=%d y=%d", key, x, y); 86 | 87 | if (key=='w'){ 88 | printf("W :D :D \n"); 89 | head_y1++; 90 | head_y2++; 91 | head_y3++; 92 | head_y4++; 93 | } 94 | if (key==GLUT_KEY_DOWN) 95 | { 96 | head_y1--; 97 | head_y2--; 98 | head_y3--; 99 | head_y4--; 100 | } 101 | if (key==GLUT_KEY_LEFT) 102 | { 103 | head_x1--; 104 | head_x2--; 105 | head_x3--; 106 | head_x4--; 107 | } 108 | if (key==GLUT_KEY_RIGHT) 109 | { 110 | head_x1++; 111 | head_x2++; 112 | head_x3++; 113 | head_x4++; 114 | } 115 | 116 | glutPostRedisplay(); 117 | } 118 | 119 | int main(int argc, char** argv) 120 | { 121 | glutInit(&argc, argv); 122 | glutInitWindowPosition(50, 50); 123 | glutInitWindowSize(800, 600); 124 | glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 125 | glutCreateWindow("Mr Robot"); 126 | 127 | glMatrixMode(GL_PROJECTION); 128 | gluOrtho2D(-5, 35, -5, 30); 129 | 130 | listID = glGenLists(1); 131 | MrRobot(listID); 132 | 133 | 134 | glMatrixMode(GL_MODELVIEW); 135 | glutDisplayFunc(display); 136 | glutKeyboardFunc(keyboard); 137 | glutMainLoop(); 138 | 139 | return 0; 140 | } -------------------------------------------------------------------------------- /Miscellaneous/Stackoverflow_Question.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(){ 4 | 5 | int a,b; 6 | while (1){ 7 | printf("Enter your choice :"); 8 | scanf("%d,%d", &a,&b); 9 | printf("A = %d B = %d\n",a,b); 10 | } 11 | 12 | return 0; 13 | } -------------------------------------------------------------------------------- /Miscellaneous/TestCase_Generator.cpp: -------------------------------------------------------------------------------- 1 | #if 0 2 | 3 | 4 | /*~~~~~~~~~~~~~~~~~~* 5 | * * 6 | * $Dollar Akshay$ * 7 | * * 8 | *~~~~~~~~~~~~~~~~~~*/ 9 | 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 | 25 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define MS0(x) memset(x,0,sizeof(x)) 33 | #define MS1(x) memset(x,1,sizeof(x)) 34 | #define SORT(a,n) sort(begin(a),begin(a)+n) 35 | #define REV(a,n) reverse(begin(a),begin(a)+n) 36 | #define ll long long 37 | #define MOD 1000000007 38 | 39 | FILE *fp = fopen("input.txt", "w"); 40 | 41 | mt19937 mt(26640195); 42 | 43 | ll int randomInt(ll int low, ll int high) { 44 | 45 | uniform_int_distribution dist(low, high); 46 | 47 | return dist(mt); 48 | 49 | } 50 | 51 | void randomLowerString(int len) { 52 | 53 | REP(i, len) 54 | fprintf(fp, "%c", 'a'+rand()%26); 55 | fprintf(fp, "\n"); 56 | 57 | } 58 | 59 | void randomString(char s, int diff, int len) { 60 | 61 | REP(i, len) 62 | fprintf(fp, "%c", s+rand()%diff); 63 | fprintf(fp, "\n"); 64 | 65 | } 66 | 67 | void randomUpperString(int len) { 68 | 69 | REP(i, len) 70 | fprintf(fp, "%c", 'A'+rand()%26); 71 | fprintf(fp, "\n"); 72 | 73 | } 74 | 75 | void randomArray(ll int low, ll int high, int n) { 76 | 77 | REP(i, n) { 78 | if (n%10000==0 && n>0) 79 | fprintf(fp, "\n"); 80 | fprintf(fp, "%lld ", randomInt(low, high)); 81 | } 82 | fprintf(fp, "\n"); 83 | 84 | } 85 | 86 | string generatenumberstring(int len) { 87 | 88 | string res; 89 | 90 | while (res.size() 2 | 3 | void insertSeeMore(FILE *f) { 4 | 5 | for (int i = 0; i<32400; i++) 6 | fprintf(f, "\n"); 7 | 8 | 9 | } 10 | 11 | int main() { 12 | 13 | FILE *f = fopen("msg.txt", "w"); 14 | 15 | fprintf(f, "Tallest Whatsapp message. World Record\n"); 16 | insertSeeMore(f); 17 | fprintf(f, "00100100\n"); 18 | fclose(f); 19 | return 0; 20 | } -------------------------------------------------------------------------------- /Miscellaneous/Word_Count.c: -------------------------------------------------------------------------------- 1 | char s[9999], w[998][998], a, t[999]; i, j, k, n[998]; 2 | main(){ 3 | gets(s); 4 | while ((a=s[i++])) 5 | isalnum(a)?w[j][k++]=a:w[j][0] ?j++,k=0:0; 6 | 7 | for (i=0;w[i][0];i++){ 8 | for (j = i; w[j][0]; j++){ 9 | if (!strcmp(w[i], w[j])){ 10 | if (++n[i] > 1) { 11 | k = j; 12 | while (++k<999) 13 | strcpy(w[k - 1], w[k]); 14 | j--; 15 | } 16 | } 17 | }for (k = i; k >0; k--){ 18 | if (n[k] > n[k - 1]) { 19 | j = n[k]; 20 | n[k] = n[k - 1]; 21 | n[k - 1] = j; 22 | strcpy(t, w[k]); 23 | strcpy(w[k], w[k - 1]); 24 | strcpy(w[k - 1], t); 25 | }}} 26 | for (i=0;w[i][0];i++) 27 | printf("%s = %d\n",w[i],n[i]); 28 | _getch(); 29 | } -------------------------------------------------------------------------------- /Miscellaneous/Words from a file.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() { 5 | 6 | int count = 0; 7 | char words[100][20]; 8 | 9 | FILE *f = fopen("data.txt", "r"); 10 | 11 | while (fscanf(f, "%s", words[count])>0) { 12 | 13 | if (strcmp(words[count], "Quora")==0) { 14 | printf("%s", words[count-1]); 15 | break; 16 | } 17 | else 18 | count++; 19 | 20 | } 21 | 22 | return 0; 23 | 24 | } -------------------------------------------------------------------------------- /Miscellaneous/test.cpp: -------------------------------------------------------------------------------- 1 | /*~~~~~~~~~~~~~~~~~~* 2 | * * 3 | * $Dollar Akshay$ * 4 | * * 5 | *~~~~~~~~~~~~~~~~~~*/ 6 | 7 | // 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 | 26 | using namespace std; 27 | 28 | #define sp system("pause") 29 | #define FOR(i,a,b) for(int i=a;i<=b;++i) 30 | #define FORD(i,a,b) for(int i=a;i>=b;--i) 31 | #define REP(i,n) FOR(i,0,(int)n-1) 32 | #define pb(x) push_back(x) 33 | #define mp(a,b) make_pair(a,b) 34 | #define MS0(x) memset(x,0,sizeof(x)) 35 | #define MS1(x) memset(x,1,sizeof(x)) 36 | #define SORT(a,n) sort(begin(a),begin(a)+n) 37 | #define REV(a,n) reverse(begin(a),begin(a)+n) 38 | #define ll long long 39 | #define pii pair 40 | #define MOD 1000000007 41 | 42 | 43 | 44 | int main(){ 45 | 46 | int z = printf("swiftCode"); 47 | printf("%d", z); 48 | sp; 49 | return 0; 50 | 51 | } -------------------------------------------------------------------------------- /Multi-Threading/2_Threads_Printing.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | 8 | void function_1() { 9 | for (int i = 0; i<100; i++) 10 | cout<<"Thread :"< 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | mutex mu; 10 | 11 | using namespace std; 12 | 13 | void shared_print(string msg, int id) { 14 | lock_guard guard(mu); 15 | //mu.lock(); 16 | cout< 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | using namespace std; 8 | 9 | mutex mu; 10 | 11 | using namespace std; 12 | 13 | void shared_print(string msg, int id) { 14 | mu.lock(); 15 | cout< 2 | #include 3 | #include 4 | 5 | int mouseX, mouseY; 6 | GLdouble eyeloc = 0; 7 | GLfloat rtri; 8 | 9 | void init() { 10 | 11 | glClearColor(0, 0, 0, 0); 12 | glMatrixMode(GL_PROJECTION); 13 | glLoadIdentity(); 14 | glMatrixMode(GL_MODELVIEW); 15 | glLoadIdentity(); 16 | gluLookAt(0, -2, -6, 0, 0, 0, 0, 1, 1); 17 | 18 | } 19 | 20 | void reshape(int w, int h) { 21 | if (h==0) 22 | h = 1; 23 | 24 | float ratio = 1.0*w/h; 25 | 26 | glMatrixMode(GL_PROJECTION);//defines viewing volume 27 | glLoadIdentity(); 28 | 29 | glViewport(0, 0, w, h); 30 | 31 | gluPerspective(45, ratio, 1, 1000); 32 | glMatrixMode(GL_MODELVIEW); 33 | } 34 | 35 | void keyboard(unsigned char key, int a, int b) { 36 | 37 | } 38 | 39 | void mouse(int a, int b, int c, int d) { 40 | 41 | } 42 | 43 | void mousedrag(int x, int y) { 44 | 45 | } 46 | 47 | void display() { 48 | 49 | 50 | glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 51 | glClearColor(1, 1, 1, 0); 52 | 53 | 54 | glLoadIdentity(); 55 | glTranslatef(0.0f, 0.0f, -6.0f); 56 | glRotatef(rtri, 0.0f, 1, 0.0f); 57 | glBegin(GL_TRIANGLES); 58 | glColor3f(1.0f, 0.0f, 0.0f); // Red 59 | glVertex3f(0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) 60 | glColor3f(0.0f, 1.0f, 0.0f); // Green 61 | glVertex3f(-1.0f, -1.0f, 1.0f); // Left Of Triangle (Front) 62 | glColor3f(0.0f, 0.0f, 1.0f); // Blue 63 | glVertex3f(1.0f, -1.0f, 1.0f); 64 | 65 | glColor3f(1.0f, 0.0f, 0.0f); // Red 66 | glVertex3f(0.0f, 1.0f, 0.0f); // Top Of Triangle (Right) 67 | glColor3f(0.0f, 0.0f, 1.0f); // Blue 68 | glVertex3f(1.0f, -1.0f, 1.0f); // Left Of Triangle (Right) 69 | glColor3f(0.0f, 1.0f, 0.0f); // Green 70 | glVertex3f(1.0f, -1.0f, -1.0f); 71 | 72 | glColor3f(1.0f, 0.0f, 0.0f); // Red 73 | glVertex3f(0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) 74 | glColor3f(0.0f, 1.0f, 0.0f); // Green 75 | glVertex3f(1.0f, -1.0f, -1.0f); // Left Of Triangle (Back) 76 | glColor3f(0.0f, 0.0f, 1.0f); // Blue 77 | glVertex3f(-1.0f, -1.0f, -1.0f); 78 | 79 | glColor3f(1.0f, 0.0f, 0.0f); // Red 80 | glVertex3f(0.0f, 1.0f, 0.0f); // Top Of Triangle (Left) 81 | glColor3f(0.0f, 0.0f, 1.0f); // Blue 82 | glVertex3f(-1.0f, -1.0f, -1.0f); // Left Of Triangle (Left) 83 | glColor3f(0.0f, 1.0f, 0.0f); // Green 84 | glVertex3f(-1.0f, -1.0f, 1.0f); 85 | glEnd(); 86 | rtri += 0.1f; 87 | glFlush(); 88 | glutPostRedisplay(); 89 | 90 | } 91 | 92 | int main(int argc, char** argv) { 93 | 94 | glutInit(&argc, argv); 95 | glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); 96 | glutInitWindowSize(800, 600); 97 | glutInitWindowPosition(100, 100); 98 | glutCreateWindow("Sample"); 99 | glewInit(); 100 | init(); 101 | 102 | glutDisplayFunc(display); 103 | glutReshapeFunc(reshape); 104 | glutKeyboardFunc(keyboard); 105 | glutMouseFunc(mouse); 106 | glutMotionFunc(mousedrag); 107 | 108 | glutMainLoop(); 109 | return 0; 110 | } -------------------------------------------------------------------------------- /OpenGL/Scan_Line.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | float x1, x2, x3, x4, y1, y2, y3, y4; 9 | 10 | void edgedetect(float x1, float y1, float x2, float y2, int *le, int *re){ 11 | 12 | float mx, x, temp; 13 | 14 | int i; 15 | 16 | if ((y2-y1)< 0){ 17 | 18 | temp = y1; y1 = y2; y2 = temp; 19 | 20 | temp = x1; x1 = x2; x2 = temp; 21 | 22 | } 23 | 24 | if ((y2-y1)!=0) 25 | 26 | mx = (x2-x1)/(y2- y1); 27 | 28 | else 29 | 30 | mx = x2-x1; 31 | 32 | x = x1; 33 | 34 | for (i = y1; i <= y2; i++){ 35 | 36 | if (x < (float)le[i]) 37 | le[i] = (int)x; 38 | 39 | if (x > (float)re[i]) 40 | re[i] = (int)x; 41 | 42 | x += mx; 43 | } 44 | 45 | } 46 | 47 | void scanfill(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4){ 48 | 49 | int le[500], re[500]; 50 | int i, y; 51 | for (i = 0; i< 500; i++){ 52 | le[i] = 500; 53 | re[i] = 0; 54 | } 55 | 56 | edgedetect(x1, y1, x2, y2, le, re); 57 | edgedetect(x2, y2, x3, y3, le, re); 58 | edgedetect(x3, y3, x4, y4, le, re); 59 | edgedetect(x4, y4, x1, y1, le, re); 60 | 61 | 62 | for (y = 0; y< 500; y++){ 63 | glBegin(GL_POINTS); 64 | for (i = (int)le[y]; i< (int)re[y]; i++) 65 | glVertex2i(i, y); 66 | glEnd(); 67 | glFlush(); 68 | Sleep(10); 69 | } 70 | 71 | 72 | } 73 | 74 | void display() 75 | 76 | { 77 | 78 | x1 = 200.0; y1 = 200.0; x2 = 100.0; y2 = 300.0; x3 = 200.0; y3 = 400.0; x4 = 300.0; y4 = 300.0; 79 | 80 | glClear(GL_COLOR_BUFFER_BIT); 81 | 82 | glColor3f(0.0, 0.0, 1.0); 83 | 84 | glBegin(GL_LINE_LOOP); 85 | 86 | glVertex2f(x1, y1); 87 | 88 | glVertex2f(x2, y2); 89 | 90 | glVertex2f(x3, y3); 91 | 92 | glVertex2f(x4, y4); 93 | 94 | glEnd(); 95 | 96 | scanfill(x1, y1, x2, y2, x3, y3, x4, y4); 97 | 98 | glFlush(); 99 | 100 | } 101 | 102 | void main(int argc, char** argv) { 103 | 104 | glutInit(&argc, argv); 105 | glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 106 | 107 | glutInitWindowSize(500, 500); 108 | 109 | glutInitWindowPosition(0, 0); 110 | 111 | glutCreateWindow("SCAN"); 112 | 113 | glMatrixMode(GL_PROJECTION); 114 | 115 | glLoadIdentity(); 116 | 117 | gluOrtho2D(0.0, 500.0, 0.0, 500.0); 118 | 119 | glutDisplayFunc(display); 120 | 121 | glutMainLoop(); 122 | 123 | } -------------------------------------------------------------------------------- /OpenGL/Serpinsky's Gasket.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | typedef float point[3]; // Array of 3 floats 7 | 8 | // Initial tetrahedron 9 | point v[] = { { 200, 200, 0 }, 10 | { 400, 546, 0 }, 11 | { 600, 200, 0 }, 12 | { 400, 315, 346 } }; 13 | 14 | int dp; 15 | 16 | void triangle(point a, point b, point c, int n){ 17 | 18 | float x = max(a[0], b[0], c[0]); 19 | float dx = (float)(x-200)/400; 20 | glColor3f(dx*(0.1 +0.3*n), 0, (1-dx)*(0.1 +0.3*n)); 21 | glBegin(GL_TRIANGLES); 22 | glVertex2fv(a); 23 | glVertex2fv(b); 24 | glVertex2fv(c); 25 | glEnd(); 26 | glFlush(); 27 | 28 | } 29 | 30 | void tetrahedron(point a, point b, point c, point d){ 31 | 32 | triangle(a, b, c, 0); 33 | triangle(a, b, d, 1); 34 | triangle(b, d, c, 2); 35 | triangle(a, d, c, 3); 36 | Sleep(500/dp/dp); //Sleeps for 10 ms 37 | 38 | } 39 | 40 | void divideGasket(point a, point b, point c, point d, int div){ 41 | 42 | float mid[6][3]; 43 | 44 | if (div>0){ 45 | for (int i = 0; i<3; i++) { 46 | mid[0][i] = (a[i]+b[i])/2; 47 | mid[1][i] = (a[i]+c[i])/2; 48 | mid[2][i] = (a[i]+d[i])/2; 49 | mid[3][i] = (b[i]+c[i])/2; 50 | mid[4][i] = (b[i]+d[i])/2; 51 | mid[5][i] = (c[i]+d[i])/2; 52 | } 53 | 54 | divideGasket(a, mid[0], mid[1], mid[2], div-1); //Left Tetrahedron 55 | divideGasket(mid[0], b, mid[3], mid[4], div-1); //Top Tetrahedron 56 | divideGasket(mid[1], mid[3], c, mid[5], div-1); //Right Tetrahedron 57 | divideGasket(mid[2], mid[4], mid[5], d, div-1); //Front Tetrahedron 58 | 59 | } 60 | else { 61 | tetrahedron(a, b, c, d); 62 | } 63 | } 64 | 65 | void display(){ 66 | 67 | 68 | glClear(GL_COLOR_BUFFER_BIT); 69 | glClearColor(0, 0, 0, 0); 70 | glFlush(); 71 | Sleep(1000); 72 | 73 | for (int div = 1; div<=4; div++) { //Number of Recursive Divisions 74 | dp = div; 75 | glClear(GL_COLOR_BUFFER_BIT); 76 | glClearColor(0, 0, 0, 0); 77 | divideGasket(v[0], v[1], v[2], v[3], div); 78 | Sleep(500); 79 | } 80 | } 81 | 82 | 83 | int main(int argc, char **argv){ 84 | 85 | glutInit(&argc, argv); 86 | glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); 87 | glutInitWindowSize(800, 600); 88 | glutInitWindowPosition(0, 0); 89 | glutCreateWindow("3D Gasket"); 90 | glMatrixMode(GL_PROJECTION); 91 | glLoadIdentity(); 92 | gluOrtho2D(0, 800, 0, 600); 93 | glutDisplayFunc(display); 94 | glutMainLoop(); 95 | return 0; 96 | 97 | } 98 | 99 | // :) -------------------------------------------------------------------------------- /OpenGL/Sine_Waves.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #define PI 3.1415926 5 | 6 | float manX = 0, manY = 0; 7 | float manSpeedX = 0.00; 8 | 9 | float t = 0; 10 | 11 | inline double degtorad(double deg){ 12 | return deg*PI/180; 13 | } 14 | 15 | void drawCircle(float x, float y, float r){ 16 | 17 | glColor3f(1,1,1); 18 | glBegin(GL_POLYGON); 19 | for(double i=0; i<=360; i+=1){ 20 | double px = r*cos(degtorad(i)) + x; 21 | double py = r*sin(degtorad(i)) + y; 22 | glVertex2f(px, py); 23 | glColor3f( (px+1)/2, (py+1)/2, 0); 24 | } 25 | glEnd(); 26 | glFlush(); 27 | } 28 | 29 | void drawMan(float x, float y){ 30 | 31 | drawCircle(x, y, 0.1); 32 | 33 | } 34 | 35 | void drawString(){ 36 | 37 | float freq = 1; 38 | 39 | for(double x = -1; x<=1; x+=0.05){ 40 | double ang = (x+1)/2*360*freq + t; 41 | double y = 0.5*sin(degtorad(ang)); 42 | drawCircle(x, y, 0.1); 43 | } 44 | 45 | } 46 | 47 | 48 | void display(){ 49 | 50 | glClear(GL_COLOR_BUFFER_BIT); 51 | glClearColor(0,0,0,0); 52 | 53 | 54 | 55 | drawString(); 56 | 57 | manX+=manSpeedX; 58 | t+=0.1; 59 | 60 | if(manX>=1 || manX<=-1) 61 | manSpeedX = -manSpeedX; 62 | 63 | glutSwapBuffers(); 64 | glutPostRedisplay(); 65 | 66 | } 67 | 68 | 69 | int main(int argc, char *argv[]){ 70 | 71 | glutInit(&argc, argv); 72 | glutInitDisplayMode(GLUT_DOUBLE); 73 | glutInitWindowSize(600, 600); 74 | glutCreateWindow("SS"); 75 | glutDisplayFunc(display); 76 | glLoadIdentity(); 77 | glutMainLoop(); 78 | return 0; 79 | 80 | } 81 | -------------------------------------------------------------------------------- /OpenGL/Teapot.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void obj(double tx, double ty, double tz, double sx, double sy, double sz){ 4 | 5 | glRotated(50, 0, 1, 0); 6 | glRotated(10, -1, 0, 0); 7 | glRotated(11.7, 0, 0, -1); 8 | glTranslated(tx, ty, tz); 9 | 10 | glScaled(sx, sy, sz); 11 | glutSolidCube(1); 12 | glLoadIdentity(); 13 | 14 | } 15 | 16 | void display() 17 | { 18 | glViewport(0, 0, 700, 700); 19 | 20 | glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 21 | 22 | obj(0, 0, 0.5, 1, 1, 0.04); // three walls 23 | 24 | obj(0, -0.5, 0, 1, 0.04, 1); 25 | 26 | obj(-0.5, 0, 0, 0.04, 1, 1); 27 | 28 | obj(0, -0.3, 0, 0.02, 0.2, 0.02); // four table legs 29 | 30 | obj(0, -0.3, -0.4, 0.02, 0.2, 0.02); 31 | 32 | obj(0.4, -0.3, 0, 0.02, 0.2, 0.02); 33 | 34 | obj(0.4, -0.3, -0.4, 0.02, 0.2, 0.02); 35 | 36 | obj(0.2, -0.18, -0.2, 0.6, 0.02, 0.6); // table top 37 | 38 | glRotated(50, 0, 1, 0); 39 | 40 | glRotated(10, -1, 0, 0); 41 | 42 | glRotated(11.7, 0, 0, -1); 43 | 44 | glTranslated(0.3, -0.1, -0.3); 45 | 46 | glutSolidTeapot(0.09); 47 | 48 | glFlush(); 49 | 50 | glLoadIdentity(); 51 | 52 | } 53 | 54 | void main(int argc, char *argv[]){ 55 | 56 | float ambient[] = { 1,1,1,1 }; 57 | 58 | float light_pos[] = { 27, 80, 2,3 }; 59 | 60 | glutInit(&argc, argv); 61 | 62 | glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 63 | 64 | glutInitWindowSize(700, 700); 65 | 66 | glutCreateWindow("t"); 67 | 68 | glEnable(GL_LIGHTING); 69 | 70 | glEnable(GL_LIGHT0); 71 | 72 | glMaterialfv(GL_FRONT, GL_AMBIENT, ambient); 73 | 74 | glLightfv(GL_LIGHT0, GL_POSITION, light_pos); 75 | 76 | glEnable(GL_DEPTH_TEST); 77 | 78 | glutDisplayFunc(display); 79 | 80 | glutMainLoop(); 81 | 82 | } -------------------------------------------------------------------------------- /OpenGL/freeglut/bin/freeglut.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/freeglut/bin/freeglut.dll -------------------------------------------------------------------------------- /OpenGL/freeglut/bin/x64/freeglut.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/freeglut/bin/x64/freeglut.dll -------------------------------------------------------------------------------- /OpenGL/freeglut/include/GL/freeglut.h: -------------------------------------------------------------------------------- 1 | #ifndef __FREEGLUT_H__ 2 | #define __FREEGLUT_H__ 3 | 4 | /* 5 | * freeglut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | #include "freeglut_std.h" 18 | #include "freeglut_ext.h" 19 | 20 | /*** END OF FILE ***/ 21 | 22 | #endif /* __FREEGLUT_H__ */ 23 | -------------------------------------------------------------------------------- /OpenGL/freeglut/include/GL/glut.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLUT_H__ 2 | #define __GLUT_H__ 3 | 4 | /* 5 | * glut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | #include "freeglut_std.h" 18 | 19 | /*** END OF FILE ***/ 20 | 21 | #endif /* __GLUT_H__ */ 22 | -------------------------------------------------------------------------------- /OpenGL/freeglut/lib/freeglut.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/freeglut/lib/freeglut.lib -------------------------------------------------------------------------------- /OpenGL/freeglut/lib/x64/freeglut.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/freeglut/lib/x64/freeglut.lib -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/bin/Win32/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/bin/Win32/glew32.dll -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/bin/x64/glew32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/bin/x64/glew32.dll -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/doc/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/doc/github.png -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/doc/glew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/doc/glew.png -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/doc/new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/doc/new.png -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/doc/ogl_sm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/doc/ogl_sm.jpg -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/doc/travis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/doc/travis.png -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/lib/Win32/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/lib/Win32/glew32.lib -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/lib/Win32/glew32s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/lib/Win32/glew32s.lib -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/lib/x64/glew32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/lib/x64/glew32.lib -------------------------------------------------------------------------------- /OpenGL/glew-2.0.0/lib/x64/glew32s.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DollarAkshay/C-and-CPP-Programs/a58cbac06af29d7c84703f8249c5a164189aead0/OpenGL/glew-2.0.0/lib/x64/glew32s.lib -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | C and C++ Programs 2 | ================== 3 | 4 | ### NOTE : My Competitive Coding solutions have been moved to this repository : https://github.com/DollarAkshay/Competitive-Coding 5 | 6 | 7 | This repository contains most of my C/C++ programs I have written over the years. 8 | 9 | *

2nd Semester Programs

10 | Contains the basic beginner programs in C. 11 | *

3rd Semester Programs

12 | Contains C++ programs in adition to some simple Data Structures programs. 13 | *

Code Golf

14 | Not much but it contains various Code Golf solutions to popular questions and problems.Code Golf is a type of programming competition where the aim is to write the smallest code possible for a given problem. 15 | *

Games & Grpahics

16 | Contains a few simple games likes 2048.Has a few simple ASCII Art animation. 17 | *

Miscellaneous

18 | A bunch of random programs I write in my free time. 19 | --------------------------------------------------------------------------------