This blog is developed to encourage the beginners. Leave comments if you found any bugs or if you have any suggestions or requirements......
Friday, June 10, 2011
Thursday, June 9, 2011
Wednesday, June 8, 2011
Monday, June 6, 2011
Sunday, June 5, 2011
394 - Mapmaker
#include<stdio.h>
#include<string.h>
char NAME[20][20];
int BA[20],W[20],D[30];
int DIM[20][40],Index,pos[30];
int calculate();
main() {
int i,j,k,name,test,lim;
char ARRAY[15];
//freopen("in.txt","r",stdin);
scanf("%d%d", &name, &test);
for(i = 0; i<name; i ++)
{
scanf("%s%d%d%d",NAME[i], &BA[i], &W[i], &D[i]);
lim = D[i]<<1;;
for(j = 0; j < lim; j ++)
scanf("%d", &DIM[i][j]);
}
for(i = 0; i<test; i ++)
{
scanf("%s",ARRAY);
for(j = 0; j<name; j ++)
if(!strcmp(ARRAY,NAME[j]))
break;
k = D[j];
Index = j;
for(j = 0; j<k; j ++)
scanf("%d", &pos[j]);
calculate();
}
return 0;
}
int calculate()
{
int i,j,k,m,L[30],pos_1[20],lim;
int address;
k = D[Index];
m = 0;
lim = k<<1;
for(j = 0; j<lim; j += 2)
{
pos_1[m] = pos[m] - DIM[Index][j];
m ++;
}
m = 0;
for(j = 0; j<lim; j += 2)
L[m++] = DIM[Index][j+1] - DIM[Index][j] + 1;
if(k == 1 )
address = pos_1[0];
else if( k == 2)
address = pos_1[0] * L[1] + pos_1[1];
else
{
address = L[1] * pos_1[0] + pos_1[1];
for(i = 2; i<k; i ++)
address = address * L[i] + pos_1[i];
}
address = W[Index] * address + BA[Index];
printf("%s[",NAME[Index]);
for(i = 0; i<k; i ++)
{
printf("%d",pos[i]);
if(i < k-1)
printf(", ");
}
printf("] = %d\n",address);
return 0;
}
#include<string.h>
char NAME[20][20];
int BA[20],W[20],D[30];
int DIM[20][40],Index,pos[30];
int calculate();
main() {
int i,j,k,name,test,lim;
char ARRAY[15];
//freopen("in.txt","r",stdin);
scanf("%d%d", &name, &test);
for(i = 0; i<name; i ++)
{
scanf("%s%d%d%d",NAME[i], &BA[i], &W[i], &D[i]);
lim = D[i]<<1;;
for(j = 0; j < lim; j ++)
scanf("%d", &DIM[i][j]);
}
for(i = 0; i<test; i ++)
{
scanf("%s",ARRAY);
for(j = 0; j<name; j ++)
if(!strcmp(ARRAY,NAME[j]))
break;
k = D[j];
Index = j;
for(j = 0; j<k; j ++)
scanf("%d", &pos[j]);
calculate();
}
return 0;
}
int calculate()
{
int i,j,k,m,L[30],pos_1[20],lim;
int address;
k = D[Index];
m = 0;
lim = k<<1;
for(j = 0; j<lim; j += 2)
{
pos_1[m] = pos[m] - DIM[Index][j];
m ++;
}
m = 0;
for(j = 0; j<lim; j += 2)
L[m++] = DIM[Index][j+1] - DIM[Index][j] + 1;
if(k == 1 )
address = pos_1[0];
else if( k == 2)
address = pos_1[0] * L[1] + pos_1[1];
else
{
address = L[1] * pos_1[0] + pos_1[1];
for(i = 2; i<k; i ++)
address = address * L[i] + pos_1[i];
}
address = W[Index] * address + BA[Index];
printf("%s[",NAME[Index]);
for(i = 0; i<k; i ++)
{
printf("%d",pos[i]);
if(i < k-1)
printf(", ");
}
printf("] = %d\n",address);
return 0;
}
Thursday, June 2, 2011
497 - Strategic Defense Initiative
Wednesday, June 1, 2011
Tuesday, May 31, 2011
Monday, May 30, 2011
Sunday, May 29, 2011
Saturday, May 28, 2011
Friday, May 27, 2011
11110 - Equidivisions
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cstdlib>
#define M 103
using namespace std;
int Board[M][M],point[60];
int start[M][2],N,n;
char inp[10000];
int next[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void format (int num);
void DFS_Visit(int,int);
int main()
{
int i,j,f;
//freopen("in.txt","r",stdin);
while(gets(inp))
{
sscanf(inp,"%d",&n);
if(!n)break;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
Board[i][j] = n;
for(i=1;i<n;i++)
{
gets(inp);
format(i);
}
f = 1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(!Board[i][j])
continue;
N=1;
DFS_Visit(i,j);
if(N!=n){f=0;goto NEXT;}
}
NEXT:
if(f)
printf("good\n");
else
printf("wrong\n");
memset(Board,0,sizeof(Board));
memset(point,0,sizeof(point));
memset(start,0,sizeof(start));
}
return 0;
}
void DFS_Visit(int u,int v)
{
int i,tu,tv,x;
x = Board[u][v];
Board[u][v] = 0;
for(i=0;i<4;i++)
{
tu = u + next[i][0];
tv = v + next[i][1];
if(tu>=0&&tu<n&&tv>=0&&tv<n&&Board[tu][tv]==x)
{
N++;
DFS_Visit(tu,tv);
}
}
}
void format (int num)
{
char *pch;
pch = strtok (inp, " ");
while ( pch != NULL )
{
int c1 = atoi (pch);
pch = strtok (NULL, " ");
int c2 = atoi (pch);
pch = strtok (NULL, " ");
Board [c1 - 1] [c2 - 1] = num;
}
}
#include<cstdio>
#include<cstring>
#include <cstdlib>
#define M 103
using namespace std;
int Board[M][M],point[60];
int start[M][2],N,n;
char inp[10000];
int next[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void format (int num);
void DFS_Visit(int,int);
int main()
{
int i,j,f;
//freopen("in.txt","r",stdin);
while(gets(inp))
{
sscanf(inp,"%d",&n);
if(!n)break;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
Board[i][j] = n;
for(i=1;i<n;i++)
{
gets(inp);
format(i);
}
f = 1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(!Board[i][j])
continue;
N=1;
DFS_Visit(i,j);
if(N!=n){f=0;goto NEXT;}
}
NEXT:
if(f)
printf("good\n");
else
printf("wrong\n");
memset(Board,0,sizeof(Board));
memset(point,0,sizeof(point));
memset(start,0,sizeof(start));
}
return 0;
}
void DFS_Visit(int u,int v)
{
int i,tu,tv,x;
x = Board[u][v];
Board[u][v] = 0;
for(i=0;i<4;i++)
{
tu = u + next[i][0];
tv = v + next[i][1];
if(tu>=0&&tu<n&&tv>=0&&tv<n&&Board[tu][tv]==x)
{
N++;
DFS_Visit(tu,tv);
}
}
}
void format (int num)
{
char *pch;
pch = strtok (inp, " ");
while ( pch != NULL )
{
int c1 = atoi (pch);
pch = strtok (NULL, " ");
int c2 = atoi (pch);
pch = strtok (NULL, " ");
Board [c1 - 1] [c2 - 1] = num;
}
}
Thursday, May 26, 2011
10102 - The path in the colored field
Tuesday, May 24, 2011
Monday, May 23, 2011
Saturday, May 21, 2011
Friday, May 20, 2011
Thursday, May 19, 2011
Tuesday, May 17, 2011
Wednesday, May 11, 2011
908 - Re-connecting Computer Sites
Tuesday, May 3, 2011
10790 - How Many Points of Intersection?
10494 - If We Were a Child Again
10469 - To Carry or not to Carry
Monday, May 2, 2011
10323 - Factorial! You Must be Kidding!!!
10302 - Summation of Polynomials
Thursday, April 28, 2011
Tuesday, April 26, 2011
Monday, April 25, 2011
Sunday, April 24, 2011
Saturday, April 23, 2011
Friday, April 22, 2011
Thursday, April 21, 2011
Wednesday, April 20, 2011
Tuesday, April 19, 2011
Monday, April 18, 2011
Sunday, April 17, 2011
11984 - A Change in Thermal Unit
Saturday, April 16, 2011
10815 - Andy's First Dictionary
10653 - Bombs! NO they are Mines!!
Thursday, April 14, 2011
Tuesday, April 12, 2011
Sunday, April 10, 2011
Saturday, April 9, 2011
10195 - The Knights Of The Round Table
10177 - (2/3/4)-D Sqr/Rects/Cubes/Boxes?
Monday, April 4, 2011
Sunday, April 3, 2011
Friday, April 1, 2011
Wednesday, March 30, 2011
Tuesday, March 29, 2011
Sunday, March 27, 2011
Thursday, March 17, 2011
Sunday, February 27, 2011
Saturday, February 26, 2011
Friday, February 18, 2011
Wednesday, February 9, 2011
Subscribe to:
Comments (Atom)