120 - Stacks of Flapjacks

All about problems in Volume 1. If there is a thread about your problem, please use it. If not, create one with its number in the subject.

Moderator: Board moderators

devious
New poster
Posts: 13
Joined: Wed Feb 22, 2006 1:26 am

Post by devious » Fri Mar 03, 2006 4:40 pm

what?!

hoooh
New poster
Posts: 1
Joined: Thu Aug 17, 2006 8:52 pm

120 Invalid reference memory help me!!!!

Post by hoooh » Thu Aug 17, 2006 8:57 pm

Help me

why?


# include <stdio.h>
# include <stdlib.h>


int comparar(const void *a,const void *b)
{
if(*(int *)a<*(int *)b)
return(1);

if(*(int *)a>*(int *)b)
return(-1);

return(0);
}

void Voltear(int pank[100],int pos,int cant)
{
int i;
int aux;
int t;

printf("%d ",(cant-pos)%cant);

t=pos/2+pos%2;

for(i=0;i<t;i++)
{
aux=pank;
pank=pank[pos-i];
pank[pos-i]=aux;
}
}

int Posicion(int pank[100],int num)
{
int i=0;

while(true)
{
if(pank==num)
return i;
i++;
}
}




void Procesar(int pank[100],int copPank[100],int cant)
{
int i;
int pos;
qsort(copPank,cant,sizeof(copPank[0]),comparar);

for(i=0;i<cant;i++)
{
pos=Posicion(pank,copPank);

if(pos==0)
{
Voltear(pank,cant-i-1,cant);
continue;
}

if (pos+i==cant-1)
continue;

Voltear(pank,pos,cant);
Voltear(pank,cant-i-1,cant);
}
}


int main()
{
char c;
char f;
int pank[100];
int copPank[100];
int i=0;

while(scanf("%d%c",&f,&c)!=EOF)
{
pank=f;
copPank=f;

i++;
if(c=='\n')
{
Procesar(pank,copPank,i);
printf("\n");
i=0;
}
}

return 0;

}

nev4
New poster
Posts: 15
Joined: Sun Apr 30, 2006 10:19 am
Location: Lithuania

Post by nev4 » Thu Aug 17, 2006 9:10 pm

using pointers and arrays(which are pointers too) causes this(if u try to access memory u shouldn't to).

mosaick2
New poster
Posts: 21
Joined: Wed Mar 08, 2006 4:05 am

About Input data...

Post by mosaick2 » Wed Aug 30, 2006 12:38 pm

Actually, We don't need to consider about the same number inputs.
The problem defined like below.
... All pancakes in a stack have different diameters. ...
So I made a algorithm based on the problem. and I got A.C.

Frankly, If I input the same numbers in my program, It's crazy.. :o

User avatar
Disatoba
New poster
Posts: 6
Joined: Thu Feb 02, 2006 3:32 pm
Location: Bogot

120 Problem

Post by Disatoba » Tue Sep 12, 2006 12:52 am

HI I got WA in problem 120, i dont know why? would someone help me with any test cases or ideas for to get AC?
Thanks!

User avatar
Disatoba
New poster
Posts: 6
Joined: Thu Feb 02, 2006 3:32 pm
Location: Bogot

120 WA

Post by Disatoba » Tue Sep 12, 2006 12:55 am

HI I got WA in problem 120, i dont know why? would someone help me with any test cases or ideas for to get AC?
Thanks!

User avatar
Martin Macko
A great helper
Posts: 481
Joined: Sun Jun 19, 2005 1:18 am
Location: European Union (Slovak Republic)

Re: 120 Problem

Post by Martin Macko » Tue Sep 12, 2006 11:10 pm

Disatoba wrote:HI I got WA in problem 120, i dont know why? would someone help me with any test cases or ideas for to get AC?
Thanks!
Post your question to the forum about problems from the set I. This forum is about problems with java.

douzi0108
New poster
Posts: 2
Joined: Sun Oct 01, 2006 7:13 pm

i dununderstand why this input for 120 will be this output

Post by douzi0108 » Sun Oct 01, 2006 7:38 pm

hi ppl,

below is the input and output.

Code: Select all

Input:

1 2 3 1 2
2 3 1
2 3 4 1 8 9 6 7
2 3 4 1 8 9 6 7 0
5 1 3 6 4 1 9 2 0 18 29

Output:
1 1 2 2 3
3 1 3 0
1 2 3
2 1 0
1 2 3 4 6 7 8 9
6 3 1 3 0
0 1 2 3 4 6 7 8 9
7 4 2 4 2 1 0
0 1 1 2 3 4 5 6 9 18 29
9 5 9 6 8 3 8 6 9 0
for the first 5 input, i can see that once all the big pancakes has been to the top, we can start flipping them to the bottom. but when i apply this to the last input, i dun understand why the biggest pancake is not always the first to be chosen.

can someone pls further explain this to me? thx lots!

User avatar
Roby
Experienced poster
Posts: 101
Joined: Wed May 04, 2005 4:33 pm
Location: Tangerang, Banten, Indonesia
Contact:

Post by Roby » Wed Dec 06, 2006 7:21 am

If I simulate like these:
8 4 6 7 5 2 -> 6
2 5 7 6 4 8 -> 3
7 5 2 6 4 8 -> 5
4 6 2 5 7 8 -> 2
6 4 2 5 7 8 -> 4
5 2 4 6 7 8 -> 3
4 2 5 6 7 8 -> 2
2 4 5 6 7 8 -> 0

5 1 2 3 4 -> 5
4 3 2 1 5 -> 4
1 2 3 4 5 -> 0
Does the algorithm correct? I just want to clarify if my approach is correct.

tan_Yui
Experienced poster
Posts: 155
Joined: Sat Jul 10, 2004 12:41 am

Post by tan_Yui » Wed Dec 06, 2006 9:09 am

I think your approach is correct.
But the flips' ID is a bit funny.
(.... you may have done it on purpose to explain plainly for us) :)
Convert to "ID = (Number of pancakes) + 1 - ID".
Roby wrote: 8 4 6 7 5 2 -> 1
2 5 7 6 4 8 -> 4
7 5 2 6 4 8 -> 2
4 6 2 5 7 8 -> 5
6 4 2 5 7 8 -> 3
5 2 4 6 7 8 -> 4
4 2 5 6 7 8 -> 5
2 4 5 6 7 8 -> 0

5 1 2 3 4 -> 1
4 3 2 1 5 -> 2
1 2 3 4 5 -> 0
Best regards.

User avatar
Roby
Experienced poster
Posts: 101
Joined: Wed May 04, 2005 4:33 pm
Location: Tangerang, Banten, Indonesia
Contact:

Post by Roby » Wed Dec 06, 2006 10:17 am

thanx tan_yui, but I got WA... can someone pointed out my mistake? here is my code:

Code: Select all

removed after AC... thanks a lot tan_yui for your help
I test with this input:

Code: Select all

8 4 6 7 5 2
1 2 3 4 5
5 4 3 2 1
5 1 2 3 4
4 4 1
5 5 5
And the output is like this:

Code: Select all

8 4 6 7 5 2
6 3 5 2 4 3 2 0
1 2 3 4 5
0
5 4 3 2 1
5 0
5 1 2 3 4
5 4 0
4 4 1
3 0
5 5 5
0
Last edited by Roby on Thu Dec 07, 2006 3:49 am, edited 1 time in total.

tan_Yui
Experienced poster
Posts: 155
Joined: Sat Jul 10, 2004 12:41 am

Post by tan_Yui » Wed Dec 06, 2006 11:49 pm

Roby wrote:8 4 6 7 5 2
1 2 3 4 5
5 4 3 2 1
5 1 2 3 4
My output is :
8 4 6 7 5 2
1 4 2 5 3 4 5 0
1 2 3 4 5
0
5 4 3 2 1
1 0
5 1 2 3 4
1 2 0
Please check my previous post again.
And, we don't need to consider about the last 2 cases, as mosaick2 says.

Best regards.

User avatar
Roby
Experienced poster
Posts: 101
Joined: Wed May 04, 2005 4:33 pm
Location: Tangerang, Banten, Indonesia
Contact:

Post by Roby » Thu Dec 07, 2006 3:38 am

What a silly mistake :oops: I changed the code so the ID will be like this:
ID = (number of pancakes) - ID
And I got AC..

Thanx tan_yui for your help... :P

User avatar
Oronno
New poster
Posts: 21
Joined: Sun Jul 09, 2006 1:42 pm
Location: Dhaka
Contact:

120, how can i get input from text file?

Post by Oronno » Sun Feb 04, 2007 6:47 am

I have solved this problem, but it works only for 1 line input.
I can't understand how can i get multiple input for this progeamme.
Anyone can help me please?
Please dont say me to get the input as a string, because i think, it will not the actual solve of this problem.
please help me.....
Last edited by Oronno on Mon Oct 06, 2008 11:58 am, edited 1 time in total.
I like programming but i am so lazy to do it...

helloneo
Guru
Posts: 516
Joined: Mon Jul 04, 2005 6:30 am
Location: Seoul, Korea

Post by helloneo » Sun Feb 04, 2007 7:00 am

Why you don't think getting input as a string is not the solution..?
gets() + strtok() works fine..
Also, you can use scanf() + getchar() (only when there is no traling space in the input)

By the way, you don't need to use big red letters.. Everybody can read normal letters.. :)

Post Reply

Return to “Volume 1 (100-199)”