Page 7 of 13

406---ALL PE!!!!!!!plz Help

Posted: Wed Jan 10, 2007 10:25 am
by dust_cover
hi,

For the problem 406 (prime cuts) I simply printed 2 new line after each output :

My output format is like this:

Code: Select all

print(n*c:*);
print(list_of_prime_no*);
print(\n\n);
here '*' represents the space (' ')

But I am constantly getting PE.

I have also tried like:

Code: Select all

Print 2 new lines after each case EXCEPT the LAST ONE.
but again its a PE.
Can someone who had an ACC please tell me the correct output format precisely??????? I badly need this!

---THANX IN ADVANCE

406 WA why?>"<

Posted: Thu Feb 01, 2007 2:43 pm
by pelinwang
Here is my code

Code: Select all

#include <iostream>
#include <cmath>
using namespace std;

int primejudge (int n);

int main(){
    int n , c;
    while ((cin >> n >> c) && n >=1 && n <= 1000 && c >= 1 && c <= n){
          int prime[n] , primeaddress;
          if (n == 1){
                prime[0] = 1;
                primeaddress = 1;
          }
          else if (n == 2){
               prime[0] = 1;
               prime[1] = 2;
               primeaddress = 2;
          }
          else if (n == 3 || n == 4){
               prime[0] = 1;
               prime[1] = 2;
               prime[2] = 3;
               primeaddress = 3;
          }
          else{
               prime[0] = 1;
               prime[1] = 2;
               prime[2] = 3;
               primeaddress = 3;
               for (int i = 0 ; (6 * i + 5) <= n ; i ++){
                   if (primejudge (6 * i + 5)){
                             prime[primeaddress] = 6 * i + 5;
                             primeaddress ++;
                   }
                   if ((6 * i + 7) <= n && primejudge (6 * i + 7)){
                          prime[primeaddress] = 6 * i + 7;
                          primeaddress ++;
                   }
               }
          }
          
          if ((c - 1) <= primeaddress / 2 && primeaddress % 2 == 1){
             cout << n << " " << c << " :";
             for (int i = primeaddress / 2 - (c - 1) ; i <= primeaddress / 2 + (c - 1) ; i ++){
                 cout << " " << prime[i];
             }
          }
          else if (c <= primeaddress / 2 && primeaddress % 2 == 0){
               cout << n << " " << c << " :";
               for (int i = primeaddress / 2  - c ; i <= primeaddress / 2 + c - 1 ; i ++){
                   cout << " " << prime[i];
               }
          }
          else{
               cout << n << " " << c << " :";
               for (int i = 0 ; i < primeaddress ; i ++){
                   cout << " " << prime[i];
               }
          }
          cout << endl << endl;
    }
    return 0;
}

int primejudge (int n){
    for (int i = 2 ; i <= sqrt(n) ; i ++){
        if (n % i == 0){
              return 0;
        }
    }
    return 1;
}
I have tried all the inputs, but still get WA.
Why? >""<

Posted: Sun Feb 04, 2007 6:51 am
by pelinwang
after I change the ninth line in my code

Code: Select all

while ((cin >> n >> c) && n >=1 && n <= 1000 && c >= 1 && c <= n)
c <= n into c <= 1000
I have got AC.

Posted: Sun Feb 04, 2007 7:02 am
by helloneo
If you got AC, remove your code plz.. :)

Posted: Thu Mar 22, 2007 11:11 am
by Jatno
hi!

AC Output format is:

n*c:*a*b*c*d#
#
n*c:*a*b*c*d#
#
n*c:*a*b*c*d#
#

But ur one may be:

n*c:*a*b*c*d*#
#
n*c:*a*b*c*d*#
#
n*c:*a*b*c*d*#
#

Posted: Fri Mar 23, 2007 8:07 am
by abdullah<cse du>
Hi,

I think your output section is not right.

print(n*c:*);
print(list_of_prime_no*);
print(\n\n);
Instead of the above section please try it
print(n*c:no space);
print(*list_of_prime_no);
print(\n\n);
I think it will help you.

Thanks.
ABDULLAH

Posted: Sun Mar 25, 2007 10:35 am
by Jatno
there should be two blank line after each case output :(


printf("%ld %ld:",num,c);
for(i=start;i<=end;i++)
printf(" %d",prime);
printf("\n\n");


may be it works for u

406 NEED HELP

Posted: Tue May 22, 2007 12:21 pm
by ekaki
Here is my Code. I have been tired seeing WA. Can anyone find the BUG ? Thanx In advance.

#include<stdio.h>
#include<math.h>

int a,j,m,k=0,i,n,c1,c2,flag2,prime[1000],flag[1000],count,left,right;
int main()

{

while(scanf("%d %d",&n,&c1)==2)
{

printf("%d %d: ",n,c1);
if((n < 1 || n > 1000) || (c1 < 1 || c1 > n))
{
printf("\n\n");
continue;
}
for(i=0;i<=n+1;i++)

flag=1;flag2 = 0;
m=sqrt(n);
prime[1] = 1;

for(i=2;i<=m;i++)
{
if (flag==1)
{
for(j=i+i;j<=n;j+=i)
flag[j]=0;
}
}

for(i=2,k=2,count=0;i<=n+1; i++)

{
if (flag==1)

{
prime[k++]=i;
count++;

}

}




if(count%2==0)
{
c2 = c1*2;

if (c2>=count)
{
for (i=1;i<=count;i++)
{
printf("%d ",prime);
}
flag2 = 1;

}

if(flag2!=1)
{
left = count/2 - c1 + 1;
right = count/2 + 1 + c1 - 1;

for (i=left;i<=right;i++)
printf("%d ",prime);

}
printf("\n\n");
}

if((flag2==0)&&(count%2!=0))
{
c2 = c1*2 -1 ;

if (c2>=count)
{
for (i=1;i<=count;i++)
{
printf("%d ",prime);
}
flag2 = 1;

}
if(flag2!=1)
{
left = (count+1)/2 - (c2- 1)/2;
right = (count+1)/2 + (c2- 1)/2;

for (i=left;i<=right;i++)
printf("%d ",prime);
}
printf("\n\n");
}
}

return 0;
}

:cry: :evil: :evil: :o

Posted: Tue May 22, 2007 5:34 pm
by Jan
Search the board first. Don't open a new thread if there is one already. And use code tags to post a code.

406 what's the prob with WA

Posted: Wed May 23, 2007 9:57 am
by bishop

Code: Select all

#include<stdio.h>
#include<math.h>
#define size 1004
#define true 1
#define false 0

int main()
{
	int a,b[size],m=0,i,j,k=0,t,p[size],prime[size];
	int s;	 
	p[0]=false; p[1]=true;
	
	for(i=2; i<=size; i++)
		p[i]=true;
		
	s=sqrt(size);
	
	for(i=2; i<=s; i++)
		{
			if(p[i]==true)
			for(j=i+i; j<=size; j=j+i)
				p[j]=false;
		}
		
	for(i=0; i<=size; i++)
	{
		if(p[i]==true)
		{
			prime[m]=i;
			//printf("%d ",i);
			m++;
		}
	}
	
	
	while((scanf("%d %d",&a,&m))==2)
	{
		if(!((a>=1 && a<=1000) && (m>=1 && m<=a)))
		 break;
	
		printf("%d %d: ",a,m);
		
		k=0;
		for(i=1; i<a; i++)
		{
			if(p[i]==true)
			{
				b[k]=i;
				k++;
			}
			
		}

		if(m*2>=a)for(i=0;i<k;i++)printf("%d ",b[i]);
		else if(k/2-m<0 && k/2+m>k) for(i=0;i<k;i++)printf("%d ",b[i]);
			
		else 
		{
			if(k%2==0)
				for(i=k/2-m;i<k/2+m;i++)printf("%d ",b[i]);
	
		else for(i=k/2-m+1;i<k/2+m;i++)printf("%d ",b[i]);
		}
		printf("\n\n");
	}
return 0;
}

Posted: Wed May 23, 2007 8:40 pm
by Jan
Search the board first. Don't open a new thread if there is one already.

Posted: Sat Jun 09, 2007 10:41 am
by mukeshtiwari
hi everybody ..i think i am really dumb and i could not understand this problem after reading many times . i have some confusion kindly help me.

for input 1
21 2 prime numbers between 1 and 21 is 1 2 3 5 7 11 13 17 19 . therer are 9 (odd) prime numbers in the list so we need to print (2*2 -1) =3 prime numbers from the middle of the list.
now my confusion is that middle of list will 4th elment (9/2 ) or fifth element .
As i studied in statistics if number of elements are odd in list then middle element will be (n/2)+1th term so middle term should be fifth and output should be printed from 5th element .
so output should be like this 7 11 13 .

now if there are even numbers in the list then we have two middle of the list
1) n/2th term
2) (n/2)+1 th term

so for second input
18 2
prime list 1 2 3 5 7 11 13 17 .
8 prime numbers so we have to print 4 term from middle of list and middle term will be 4th and 5th and if we print from 4th term
then output should be 5 7 11 13
and if we print from 5th term then output should be
7 11 13 17

kindly help me ...

Posted: Sat Jun 09, 2007 5:43 pm
by Jan
mukeshtiwari wrote:for input 1
21 2 prime numbers between 1 and 21 is 1 2 3 5 7 11 13 17 19 . therer are 9 (odd) prime numbers in the list so we need to print (2*2 -1) =3 prime numbers from the middle of the list.
now my confusion is that middle of list will 4th elment (9/2 ) or fifth element .
As i studied in statistics if number of elements are odd in list then middle element will be (n/2)+1th term so middle term should be fifth and output should be printed from 5th element .
so output should be like this 7 11 13 .
No no no. 7 is the median, and three numbers should be printed. So, print one number from the left of 7 and one from the right. So, 5 7 11 should be the output.

If you want to print 5 numbers then it should be 3 5 7 11 13. And similar approach should be applied when there are even number of numbers.

Hope these help.

What is the PE in my p406

Posted: Thu Jul 12, 2007 5:01 pm
by Bappi_cuet
Plz help me to find out the PE.

Code: Select all

#include<stdio.h>          
int isprime(int x)
{
int i=2;
while(i*i<=x)
{
if(x%i==0)
return 0;
i++;
}
return 1;
}

void main()
{
int k=0,i,a[175],n,c=0;
while(scanf("%d %d",&n, &c)!=EOF && (n&&c))
{
printf("%d %d:",n,c);
k=0;
for(i=1; i<=n; i++)
if(isprime(i))
a[k++]=i;
if(c>k/2)
i=0;
else
if(k%2==0)
i=(k/2)-c;
else
i=(k/2)-(c-1);
for( ; i<(k/2)+c; i++)
{
if(i>=k)
break;
printf(" %d ",a[i]);
}
printf("\n\n");
}
}
THAKS TO ALL.

Posted: Thu Jul 12, 2007 5:12 pm
by Jan
Dont open a new thread if there is one already.