1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C++ :

    #include<stdio.h> 
    #include<string.h> 
    int count=0,pancakes[111]={0},steps[111]={0}; 
    void daozhi(int weizhi); 
    int main() 
    {
    	int n,i,j;     
    	while(1)     
    	{         
    		scanf("%d",&n);
    		if(n==0) return 0;
    		for(i=1;i<=n;i++) 
    		scanf("%d",&pancakes[i]); 
    		count=0;         
    		for(i=n;i>=2;i--)         
    		{             
    			if(pancakes[i]!=i)             
    			{                 
    				for(j=i-1;j>=1;j--) if(pancakes[j]==i) 
    				break;                 
    				if(j!=1) daozhi(j);                 
    				daozhi(i);             
    			}         
    		}         
    		printf("%d",count);         
    		for(i=0;i<count;i++) printf(" %d",steps[i]); 
    		printf("\n");     
    	}     
    } 
    void daozhi(int weizhi) 
    {     
    	steps[count++]=weizhi;     
    	for(int i=1;i<=weizhi/2;i++)     
    	{         
    		int temp=pancakes[i];         
    		pancakes[i]=pancakes[weizhi+1-i];         
    		pancakes[weizhi+1-i]=temp;     
    	} 
    } 
    
    
    • 1

    信息

    ID
    1487
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者