SPOJ 8. Complete the Sequence!
Problem code: CMPLS
TODOLIST:
TJU 2210. Adding Reversed Numbers December 7, 2009
SPOJ 42. Adding Reversed Numbers
TJU 2210. Adding Reversed Numbers
--AC--
#include<stdio.h>
#include<string.h>
#include<stdio.h>
int main()
{
int i,j,k,l1,l2,l,result,n1,n2;
char s1[10],s2[10],s[10],c,tmp;
int cases;
scanf("%d",&cases);
while(cases--)
{
scanf("%s %s",s1,s2);
l1=strlen(s1);
l2=strlen(s2);
for(i=0;i<l1/2;i++)
{
tmp=s1[i];
s1[i]=s1[l1-i-1];
s1[l1-i-1]=tmp;
}
for(i=0;i<l2/2;i++)
{
tmp=s2[i];
s2[i]=s2[l2-i-1];
s2[l2-i-1]=tmp;
}
n1=atoi(s1);
n2=atoi(s2);
result=n1+n2;
sprintf(s1,"%d",result);
l1=strlen(s1);
for(i=0;i<l1/2;i++)
{
tmp=s1[i];
s1[i]=s1[l1-i-1];
s1[l1-i-1]=tmp;
}
result=atoi(s1);
printf("%d\n",result);
}
return 0;
}
SPOJ 5450. Tiles of Tetris, Not! November 30, 2009
SPOJ 5450. Tiles of Tetris, Not!
Problem code: ANARC09B
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
long long int gcd(long long int n1,long long int n2)
{
if(n1==0) return n2;
else if(n2==0) return n1;
if(n1>n2)
return gcd(n1%n2,n2);
else
return gcd(n1,n2%n1);
return 0;
}
int main()
{
long long int i,j,k,lcm;
long long int W,H;
while(1)
{
scanf("%lld%lld",&W,&H);
if(W==0&&H==0) break;
if(W==H)
printf("1\n");
else if(W>H)
{
if(W%H==0)
printf("%lld\n",W/H);
else
{
lcm=(W*H)/gcd(W,H);
printf("%lld\n",lcm);
}
}
else if(H>W)
{
if(H%W==0)
printf("%lld\n",H/W);
else
{
lcm=(W*H)/gcd(W,H);
printf("%lld\n",lcm);
}
}
}
return 0;
}
TJU 2391. Ancient Cipher November 28, 2009
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,k;
char s1[101],s2[101];
int a[26],b[26];
int n,l,temp,flag;
while(1)
{
if(scanf("%s",s1)==-1) break;
scanf("%s",s2);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;s1[i]!='\0';i++)
{
a[s1[i]-'A']++;
b[s2[i]-'A']++;
}
for(i=0;i<26;i++)
{
for(j=i;j<26;j++)
{
if(a[i]>a[j])
{
temp=a[i];a[i]=a[j];a[j]=temp;
}
if(b[i]>b[j])
{
temp=b[i];b[i]=b[j];b[j]=temp;
}
}
}
flag=1;
for(i=0;i<26;i++)
{
if(a[i]!=b[i])
{
flag=0;
break;
}
}
if(flag==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
TJU 2674. Java vs C++ November 28, 2009
2674. Java vs C++
1163. Java vs C ++ Problem code: JAVAC
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,k,flag;
char s[201],c,res[201];
while(1)
{
if(scanf("%s",s)==-1) break;;
for(i=0;i<201;i++)
res[i]='\0';
if(strchr(s,'_'))
{
flag=0;
for(i=0;s[i]!='\0';i++)
if(s[i]>='A'&&s[i]<='Z')
{
flag=1;
break;
}
if(flag==1||s[0]=='_'||s[strlen(s)-1]=='_'||s[0]>'A'&&s[0]<='Z'||strstr(s,"__"))
printf("Error!\n");
else
{
j=0;
for(i=0;s[i]!='\0';)
{
if(s[i]=='_')
{
res[j++]=s[i+1]-32;
i=i+2;
}
else
{
res[j++]=s[i];
i=i+1;
}
}
res[j]='\0';
printf("%s\n",res);
}
}
else
{
if(s[0]>='A'&&s[0]<='Z')
printf("Error!\n");
else
{
j=0;
for(i=0;s[i]!='\0';)
{
if(s[i]>='A'&&s[i]<='Z')
{
res[j++]='_';
res[j++]=s[i]+32;
i++;
}
else
{
res[j++]=s[i];
i++;
}
}
printf("%s\n",res);
}
}
}
return 0;
}
TJU 1154. A Mathematical Curiosity November 25, 2009
TJU 1154. A Mathematical Curiosity
[took 20 Mins to code]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,k,a,b;
int n,m,result,tmp,cases,count;
cases=0;
while(1)
{
scanf("%d%d",&n,&m);
if(n==0&&m==0) break;
count=0;
for(a=1;a<n;a++)
{
for(b=1;b<n;b++)
{
if(((a*a+b*b+m)%(a*b))==0)
{
++count;
if(a==b) count=count-1;
}
}
}
printf("Case %d: %d\n",++cases,count/2);
}
return 0;
}
TJU 1519. Ball Toss November 25, 2009
tougher
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j;
int n,k,total_toss,tmp,prev,all_done,new;
char a[50];
int m,t,status[50];
while(1)
{
scanf("%d",&n);
if(n==0) break;
scanf("%d",&k);
for(i=0;i<n;i++)
scanf(" %c",&a[i]);
for(i=0;i<n;i++)
status[i]=0;
total_toss=0;
all_done=0;
prev=0;
new=0;
k--;
while(all_done<n)
{
total_toss++;
if(status[k]==0)
{
status[k]=1;
all_done++;
}
tmp=prev;
prev=k;
if(a[k]=='L')
{
a[k]='R';
k=(tmp+n-1)%n;
if(k==prev)
{
k=(k+n-1)%n;
}
}
else if(a[k]=='R')
{
a[k]='L';
k=(tmp+1)%n;
if(k==prev)
{
k=(k+1)%n;
}
}
}
printf("Classmate %d got the ball last after %d tosses.\n",prev+1,total_toss);
}
return 0;
}
TJU 2010. Sum of Consecutive Prime Numbers November 22, 2009
TJU 2010. Sum of Consecutive Prime Numbers
Source: Asia – Tokyo (Japan) 2005
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,k,tot;
int a[2000];
int n,flag,count,sum;
a[1]=2;
a[2]=3;
tot=2;
for(i=2;i<=10000;i++)
{
flag=0;
for(j=2;j<=sqrt(i);j++)
{
if(j!=i&&i%j!=0)
{
flag=1;
continue;
}
else if(j!=i&&i%j==0)
{
flag=0;
break;
}
}
if(flag==1)
a[++tot]=i;
}
while(1)
{
scanf("%d",&n);
if(n==0) break;
sum=0;
count=0;
for(j=1;j<=tot;j++)
{
sum=0;
for(i=j;i<=tot;i++)
{
sum=sum+a[i];
if(sum==n)
{
++count;
break;
}
}
}
printf("%d\n",count);
}
return 0;
}
TJU 2001. Counting Sheep November 22, 2009
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,k;
char s[30][20];
int cases;
int n,count;
j=0;
scanf("%d",&cases);
while(cases--)
{
j++;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
scanf("%s",s[i]);
count=0;
for(i=1;i<=n;i++)
if(!strcmp(s[i],"sheep"))
++count;
printf("Case %d: This list contains %d sheep.\n",j,count);
if(cases!=0)
printf("\n");
}
return 0;
}
TJU 1100. Pi November 18, 2009
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int hcf(int n1,int n2)
{
if(n1==0) return n2;
else if(n2==0) return n1;
if(n1>n2) return hcf(n1%n2,n2);
else if(n1<n2) return hcf(n1,n2%n1);
return 0;
}
int main()
{
int i,j,k;
int a[100],n,tot,count,hc;
float res;
while(1)
{
scanf("%d",&n);
if(n==0) break;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
count=0;
tot=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
hc=hcf(a[i],a[j]);
if(hc==1)
++count;
++tot;
}
}
res=(float)((float)count/(float)tot);
res=(float)sqrt(6.0/(float)res);
if(count==0) printf("No estimate for this data set.\n");
else printf("%.6f\n",res);
}
return 0;
}
TJU 1920. Hangover November 15, 2009
--AC--
[ for input 3.73 it gives 63 which is acceptable because of floating point inaccuracy]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,k;
float len,sum=0;
while(1)
{
scanf("%f",&len);
if(len==0.00) break;
sum=0;
i=2;
while(1)
{
sum=sum+(float)1/(i);
if(sum>=len) break;
++i;
}
printf("%d card(s)\n",i-1);
}
return 0;
}
TJU 1962. Skew Binary November 15, 2009
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int i,j,k,num,l;
char s[1000];
while(1)
{
scanf("%s",s);
if(s[0]=='0') break;
l=strlen(s);
num=0;
for(i=0;s[i]!='';i++)
{
num+=(s[i]-48)*(pow(2,l)-1);
l--;
}
printf("%d\n",num);
}
return 0;
}
TJU 1930. Doubles November 15, 2009
--AC--
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,k;
int a[100],n,res;
int count=0;
while(1)
{
i=0;
count=0;
scanf("%d",&a[i]);
if(a[i]==-1) break;
i++;
while(scanf("%d",&a[i])&&a[i]!=0) i++;
for(j=0;j<i;j++)
{
for(k=0;k<i;k++)
{
if(a[j]!=a[k]&&a[j]*2==a[k]){ ++count;break;}
}
}
printf("%d\n",count);
}
return 0;
}
TJU 1909. Robot Motion November 15, 2009
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,k;
char s[100][100],ch;
int a[100][100],b[100][100];
int row,col,entr;
int flg,steps,count,loop;
while(1)
{
scanf("%d%d%d\n",&row,&col,&entr);
if(row==0&&col==0&&entr==0) break;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
s[i][j]=getchar();
a[i][j]=0;
b[i][j]=0;
}
getchar();
}
i=0;j=entr-1;
flg=0;
count=0;
while(1)
{
flg=0;
if(i==-1||i>=row) {steps=count;break;}
else if(j==-1||j>=col) {steps=count;break;}
else if(a[i][j]==1){ steps=b[i][j]-1;loop=count-steps;flg=1;break;}
if(s[i][j]=='N') {a[i][j]=1;++count;b[i][j]=count;i=i-1;}
else if(s[i][j]=='S') {a[i][j]=1;++count;b[i][j]=count;i=i+1;}
else if(s[i][j]=='W') {a[i][j]=1;++count;b[i][j]=count;j=j-1;}
else if(s[i][j]=='E') {a[i][j]=1;++count;b[i][j]=count;j=j+1;}
}
if(flg==1) printf("%d step(s) before a loop of %d step(s)\n",steps,loop);
else printf("%d step(s) to exit\n",steps);
}
return 0;
}



Recent Comments