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;
}

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.