Saturday, 25 November 2017

C Program to print the next palindrome

#include <stdio.h>
#include <conio.h>
void main()
{
int n,i,k,r,s;
clrscr();
scanf("%d",&n);
for(i=n+1;;i++)
{
s=0;
k=i;
while(k>0)
{
r=k%10;
s=s*10+r;
k=k/10;
}
if(s == i)
{
printf("%d",i);
break;
}
}
getch();
}

count steps in matrix solution in C

#include<stdio.h>
 #include <conio.h>
#include <math.h>
int a[10][10],y,z,r,c;
int fun(int n)
{
                int k,i,j,f=0;
                for(i=0;i<r;i++)
                {
                                for(j=0;j<c;j++)
                                {
                                                if(n == a[i][j])
                                                {       f=1;
                                                                break;
                                                }
                                }
                                if(f ==1)
                                                break;
                }
      //      printf("\n%d\t%d",i,j);
                k=abs(y-i)+abs(z-j);
                y=i;
                z=j;
                return k;
}
int main()
{
           int count,i,j,c1,t,test;
           scanf("%d",&test);
           while(test--)
            {           
                count=0;
                scanf("%d%d",&r,&c);
                for(i=0;i<r;i++)
                                for(j=0;j<c;j++)
                                                scanf("%d",&a[i][j]);
                y=0;z=0;
                 for(i=a[0][0]+1,c1=0;c1<r*c-1;c1++,i++)
                {
                                t=fun(i);
                                count =count+t;
                }
                printf("%d",count);
          }
           return 0;

}

C Program to check whether an integer array is present in another array

#include<stdio.h>
#include <conio.h>
void main()
{
int a[100],b[100],i,n,m,j,k,flag,flag1=0;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++)
{
    if(a[i] == b[0] && i+m <= n)
    {
                for(j=i,k=1;k<m;k++,j++)
                {
                         if(a[j] != b[k])
                                 break;
                }
                if(k == m-1)
                {
                                flag1=1;
                                break;
                }
     }
}
if(flag1 ==1)
                printf("Present");
else
                printf("not present");

getch();

} 

Chef and Dolls Code Chef solution in C

#include <stdio.h>
 int main()
 {
int t,n,a,i;
scanf("%d",&t);
while(t--)
{
 int b[100000]={0},a[100000];
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
     scanf("%d",&a[i]);
     b[a[i]]++;
 }
 for(i=0;i<=100000;i++)
 {
     if(b[i]%2!=0)
     {
         printf("%d\n",i);
         break;
     }
 }
                }
                return 0;

}  

Friday, 24 November 2017

Divisible Sum Pairs, Non Divisible Subset Hacker Rank Solution in C

https://www.hackerrank.com/challenges/divisible-sum-pairs/problem

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main() {
    int n,result=0;
    int k,j;
    scanf("%i %i", &n, &k);
    int *ar = malloc(sizeof(int) * n);
    for(int ar_i = 0; ar_i < n; ar_i++){
       scanf("%i",&ar[ar_i]);
    }
    for(int ar_i = 0; ar_i < n-1; ar_i++){
      for(j=ar_i+1;j<n;j++)
          if((ar[ar_i]+ar[j])%k == 0)
              result++;
    }
    printf("%d\n", result);
    return 0;
}

========================================================================
https://www.hackerrank.com/challenges/non-divisible-subset/problem


#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int max(int a,int b)
{
    if(a>b)
        return a;
    return b;
}

int nonDivisibleSubset(int k, int arr_size, int* arr) {
    // Complete this function
    int h[101]={0},result=0,i,j;
    for(i=0;i<arr_size;i++)
        h[(arr[i]%k)]++;
    if(h[0] != 0) result++;
    for(i=1,j=k-1;i<j;i++,j--)
    {
        result=result+max(h[i],h[j]);
    }
    if(k%2 == 0 && h[k/2] != 0)
        result++;
    return result;
}

int main() {
    int n;
    int k;
    scanf("%i %i", &n, &k);
    int *arr = malloc(sizeof(int) * n);
    for (int arr_i = 0; arr_i < n; arr_i++) {
       scanf("%i",&arr[arr_i]);
    }
    int result = nonDivisibleSubset(k, n, arr);
    printf("%d\n", result);
    return 0;
}

Breaking Records Hacker Rank Solution in C

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>



int main() {
    int n,result_size=2,max,min;
    scanf("%d",&n);
    int *s = malloc(sizeof(int) * n);
    int result[2];
    result[0]=0;
    result[1]=0;
    for(int s_i = 0; s_i < n; s_i++){
       scanf("%d",&s[s_i]);
        if(s_i == 0)
            max=min=s[s_i];
        else
        {
            if(s[s_i]> max)
            {
                result[0]++;
                max=s[s_i];
            }
            if(s[s_i]< min)
            {
                result[1]++;
                min=s[s_i];
            }
        }
    }
  
  
    for(int i = 0; i < result_size; i++) {
        if (i) {
            printf(" ");
        }
        printf("%d", result[i]);
    }
    puts("");
    return 0;
}