here is only basic implementation of problems for beginners. If you have any problem with any solution or any basic concept of programming or you want more efficient solution you can mail me.
my suggestion is not to copy and paste codes from here try to understand the logic and think why you were not able to solve it.

Friday, 12 September 2014

Make them equal

#include<stdio.h>
int main(){
long long int a,t,n,i,sum,u;
scanf("%lld",&t);
while(t--){
sum=0;
scanf("%lld",&n);
u=n;
while(u--){
scanf("%lld",&a);
sum+=a;
}
if(sum%n==0){
printf("%lld\n",n);
}else{
printf("%lld\n",(n-1));
}
}
return 0;
}

Thursday, 11 September 2014

spoj Naughty and balls

#include<stdio.h>
#include<math.h>
int main(){
long int a,b,c,ar[100010]={0},cr[100010]={0},i,l,n,min=10000000,u=0,z;
scanf("%ld",&n);
c=n;
while(n--){
scanf("%ld %ld",&a,&b);
if(a==b){
ar[a]++;
// cr[a]++;
}else{
ar[a]++;
// cr[a]++;
cr[b]++;
}
}
l=(c+1)/2;
for(i=0;i<=100005;i++){
if(cr[i]+ar[i]>=l){
u=1;
if(l<=ar[i]){
min=0;
break;
}else{
if(cr[i]>=l-ar[i]){
if(min>l-ar[i]){
min=l-ar[i];
}
}
}
}
}
if(u==1){
printf("%ld\n",min);
}else{
printf("Impossible\n");
}
return 0;
}

piggy bank

#include<stdio.h>
int s;
int max(int a, int b) { return (a > b)? a : a; }
int knapSack(int W, int wt[], int val[], int n){
   int i, w;
   int k[n+1][W+1];
   for (i = 0; i <= n; i++){
       for (w = 0; w <= W; w++){
           if (i==0 || w==0)
               k[i][w] = 0;
           else if (wt[i-1] <= w){
                 k[i][w] = max(val[i-1] + k[i-1][w-wt[i-1]],  k[i-1][w]);
                 if(w==W){
                  s=1;
                 }
}
           else
                 k[i][w] = k[i-1][w];
       }
   }

   return k[n][W];
}
int main(){
int n,i,j,ar[100000],w[100000],e,f,t;
scanf("%d",&t);
while(t--){
s=0;
scanf("%d %d",&e,&f);
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d %d",&ar[i],&w[i]);
}
f=f-e;
j= knapSack(f, w, ar, n);
if(s==1){
printf("The minimum amount of money in the piggy-bank is %d.\n",j);
}else{
printf("This is impossible.\n");
}

}
return 0;
}

Hangover

#include<stdio.h>
int main(){
    float a,sum,i,p;
    while(1){
    sum=0;
        scanf("%f",&a);
        if(a==0.00)
        break;
        for(i=2;i<277;i++){
            sum=sum+(1/i);
            if(sum>a){
                printf("%.0f card(s)\n",i-1);
                break;
            }
                                 
        }
    }
    return 0;
}
                                 
                                  

Wednesday, 10 September 2014

Double helix

#include<stdio.h>
long long max(long long x,long long y){
if(x>y)
return x;
return y;
}
int main(){
long long n,k,ar[100009],br[100009],i,j,y,z,u,m,sum;
while(1){
sum=0;y=0;z=0;
scanf("%lld",&n);
if(n==0){
break;
}
for(i=0;i<n;i++){
scanf("%lld",&ar[i]);
}
scanf("%lld",&m);
for(i=0;i<m;i++){
scanf("%lld",&br[i]);
}
for(i=0,j=0; ; ){
// printf("111");
if(i==n){
// printf("dddddd\n");
for( ;j<m;j++){
z+=br[j];
//printf("z = %lld\n",z);
}
sum+=max(y,z);
break;
}else if(j==m){
// printf("ssss\n");
for( ;i<n;i++){
y+=ar[i];
//printf("y %lld\n",y);
}
sum+=max(y,z);
break;
}else if(br[j]==ar[i]){
sum+=max(y,z)+ar[i];
y=0;z=0;
i++;j++;
}else if(br[j]>ar[i]){
y+=ar[i];
i++;
}else{
z+=br[j];
j++;
}
// printf("%lld\n",sum);
}
printf("%lld\n",sum);
}
return 0;
}

Divisibility by 6 and 9

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){
long int z,b[10000],u,v,c,d,i,s,j,t,n;
char a[10000];
scanf("%ld",&t);
while(t--){
scanf("%ld",&n);
while(n--){
s=0;c=0;
scanf("%s",a);
z=strlen(a);
sort(a,a+z);
for(i=0;i<z;i++){
if(a[i]>=a[z-i-1]+c){
b[z-i-1]=a[i]-a[z-i-1]-c;
s+=b[z-i-1];
c=0;
}else{
b[z-i-1]=10+a[i]-a[z-i-1]-c;
c=1;
s+=b[z-i-1];
}
}
u=s;i=0;j=0;
while(s>10){
v=s;s=0;
while(v>0){
s+=v%10;v/=10;
}
}
if(b[z-1]%2==0 && u%3==0) i=1;
if(u%9==0) j=1;
if(i==1 && j==1) printf("Y");
else printf("N");
if(s==0) printf("ZER");if(s==1) printf("ONE"); if(s==2) printf("EP"); if(s==3 || s==5 || s==7) printf("OP");
if(s==4 || s==6 || s==8 || s==10) printf("ENP"); if(s==9) printf("ONP");
if(i==0 && j==0) printf("EQL"); if(i==0 && j==1) printf("LTN"); if(i==1 && j==0) printf("GTN");
printf("\n");
}
}
return 0;
}

Die hard

#include<stdio.h>
int main(){
    long long int x,i,a,b,t,h,arm;
    scanf("%lld",&x);
    for(i=0;i<x;i++){
        scanf("%lld %lld",&a,&b);
        if(a==0||b==0)
        printf("0\n");
        else{
            t=1;
            h=a+3;
            arm=b+2;
            while(1){
                if(h>5&&arm>10){
                    h=h-2;
                    arm=arm-8;
                    t=t+2;
                }else if(h>20&&arm<=10){
                    h=h-17;
                    arm=arm+7;
                    t=t+2;
                }else {
                    printf("%lld\n",t);
                    break;
                }
            }
    }
    }
    return 0;
}
                    

Tuesday, 9 September 2014

Christmas play

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    long long int t,x,y,i,h,ar[10000],arr[10000];
    scanf("%lld",&t);
    while(t--){
        h=0;
    scanf("%lld %lld",&x,&y);
        for(i=0;i<x;i++)
        scanf("%lld",&ar[i]);
    sort(ar,ar+x);
        for(i=y-1;i<x;i++){
            arr[h]=ar[i]-ar[i+1-y];
            h+=1;
        }
        sort(arr,arr+h);
        printf("%lld\n",arr[0]);
    }
    return 0;
}

Cards

#include<stdio.h>
int main(){
    long long int test,cards,level,x,i;
    scanf("%lld",&test);
    for(i=0;i<test;i++){
        scanf("%d",&level);
        x=(level*(level+1))/2-level;
        cards=(3*x+2*level)%1000007;
        printf("%lld\n",cards);
    }
return 0;
}

Brodovi

#include <stdio.h>
int main(){
int i, j, d, n, l, c = 0,a[5000],f[5000]={0};
scanf("%d", &n);
for(i = 0; i < n; i++) 
    scanf("%d", &a[i]);
for(i = 1; i < n; i++) {
if(f[i]==0) {
f[i] = 1;
d = a[i] - 1;
l = a[i];
c++;
for(j = i + 1; j < n; j++) {
if(l + d == a[j]) {
f[j] = 1;
l = a[j];
}
}
}
}
printf("%d\n", c);
return 0;
}

Bishops

#include<stdio.h>
#include<string.h>
int main(){
    int t,a,b,c,d,ar[110],i,j,k,l,h;
    char br[110];
    while(scanf("%s",br)!=EOF){
        j=0;
        if(strlen(br)==1 && br[0]==49)
        printf("1\n");
        else{
            for(i=strlen(br)-1;i>=0;i--){
            ar[j]=br[i]-'0';
            j++;
            }
            a=0;
            for(i=0;i<j;i++){
                b=ar[i]*2+a;
                ar[i]=b%10;
                a=b/10;
            }
            if(a>0){
                ar[i]=a;
                k=i;
            }else
                k=i-1;
                c=2;
            for(h=0;h<=k;h++){
                    if(ar[h]>=c){
                            ar[h]=ar[h]-c;
                            break;
                    }else{
            ar[h]=10+ar[h]-c;
                        c=1;
                    }
                }
              if(ar[k]>0)
              printf("%d",ar[k]);
                for(l=k-1;l>=0;l--){
                    printf("%d",ar[l]);
                }
               printf("\n");
            }
        }
    return 0;
}
               

Candy 3

#include<stdio.h>
int main(){
    int a,st,i,j,l,sum,c,ar;
    scanf("%d",&a);
    for(i=0;i<a;i++){
    sum=0;
        scanf("%d",&st);
        for(j=0;j<st;j++){
            scanf("%d",&ar);
            sum=(sum+ar)%st;
        }
    l=sum%st;
if(l==0)
        printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

Monday, 8 September 2014

Beehive numbers

#include<stdio.h>
int main(){
    long long int t,i,l,c;
    while(1){
    c=0;
        scanf("%lld",&t);
        if(t==-1){
        break;
        }
        for(i=1;i<100000;i++){
        l=3*i*i-3*i+1;
            if(l==t){
            c=1;
                break;
}
    }
    if(c==1)
        printf("Y\n");
        else if(c==0)
        printf("N\n");
}
    return 0;
}
   

AP 2

#include<stdio.h>
main(){
long long int p,i,j,sum,s3,sl3,n,d,a,t;
    scanf("%lld",&p);
    for(i=0;i<p;i++){
        scanf("%lld %lld %lld",&s3,&sl3,&sum);
    n=(sum*2)/(s3+sl3);
        printf("%lld\n",n);
        d=((sum-n*s3)*2)/(n*(n-5));
        a=s3-2*d;
        for(j=0;j<n;j++){
            t=a+j*d;
            printf("%lld ",t);
        }
        printf("\n");
    }
    return 0;
}

fancy numbers

#include<stdio.h>
#include<string.h>
int main(){
    long long int i,j,s,t,x;
    char a[50];
    scanf("%lld",&t);
    for(j=0;j<t;j++){
             s=1;
             scanf("%s",a);
             for(i=0;i<strlen(a);i++){
                       if(a[i]==a[i+1])
                              s=s*2;
              }
              printf("%lld\n",s);
       }
        return 0;
 }