http://www.hackerschool.org/HS_Boards/zboard.php?desc=asc&no=2854 [º¹»ç]
¹®Á¦ ¸µÅ©´Â ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù.
http://www.nia.or.kr/koi/F04000000000/F04040000000Q.asp?intExBaSEQ=43&strExBaPart=20&strExBaGrad=20&strExBaYear=2000&ExPmSEQ=384
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#define randomize() srand((unsigned)time(NULL))
#define random(n) (rand()%(n))
ÀÏ´Ü Á¦°¡ ÇÁ·Î±×·¡¹Ö ÇØ ³õÀº Äڵ带 ¹Ø¿¡ Àû¾î º¾´Ï´Ù. ±×·±µ¥ °á°ú°¡ Á¦°¡ ¿øÇÏ´Â ´ë·Î ³ª¿ÀÁö ¾Ê¾Æ¼ ¸»ÀÌÁÒ.
¾îµð°¡ À߸øµÈ ºÎºÐÀÎÁö ¾Ë·Á ÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù.
void main()
{
FILE *in=fopen("input.txt","r");
FILE *out=fopen("output.txt","w");
int howmany_number,number_final,room[100],l,i,n,func_number[100],k,count,pure[100];
number_final=0;
howmany_number=0;
fscanf(in,"%d",&howmany_number);
fscanf(in,"%d",&number_final);
for(i=1;i<=howmany_number;i++)
{
pure[i]=0;
room[i]=0;
func_number[i]=0;
fscanf(in,"%d",&pure[i]);
}
randomize();
k=howmany_number;
l=0;
l++;
for(i=1;i<=howmany_number;i++)
{
room[i]=pure[i];
}
count=0;
while(1)
{
n=random(k);
if(n==0) n++;
func_number[l]=n;
if(room[n]>=room[n+1]) room[n]=room[n]-room[n+1];
else room[n]=room[n+1]-room[n];
room[n+1]=0;
if(n+1!=k)
{
for(i=n+1;i<k;i++)
{
room[i]=room[i+1];
}
}
k--;
l++;
if(k==1)
{
if(room[1]==number_final) break;
else
{
k=howmany_number;
l=1;
for(i=1;i<=howmany_number;i++)
{
func_number[i]=0;
room[i]=pure[i];
}
}
}
count++;
if(count>=100)
{
fprintf(out,"%d",0);
break;
}
}
if(count<100)
{
for(i=1;i<howmany_number;i++)
{
fprintf(out,"%d",func_number[i]);
}
}
fclose(in);
fclose(out);
}
|
Hit : 3193 Date : 2011/01/17 12:33
|