zoukankan      html  css  js  c++  java
  • 移动小球

    描述

    你有一些小球,从左到右依次编号为1,2,3,…,n,

    你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边,B X Y表示把小球X移动到小球Y右边。指令保证合法,即X不等于Y。

    输入 小球个数n。指令条数m和m条指令,注意,1≤n≤500000,0≤m≤100000。

    输出 从左到右输出最后的小球序列。

    样例输入

    6 2
    A 1 4
    B 3 5

    样例输出

    2 1 4 5 3 6

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 int m,n;//n个小球,m条指令 
     6 
     7 int main()
     8 {
     9     int i,j,k;
    10     char ch;//指令格式 
    11     int a,b;
    12     int left[1000],right[1000];
    13     
    14     while(cin>>n>>m) 
    15     {
    16         if(1==n)
    17         {
    18             cout<<1<<endl;
    19             continue;
    20         }
    21         for(i=0; i<n; i++)
    22             left[i+1] = i;
    23         left[n+1] = n;
    24         for(i=0; i<n; i++)
    25             right[i] = i+1;
    26         
    27         while(m--)
    28         {
    29             getchar();//吸收换行 
    30             cin>>ch>>a>>b;
    31             right[left[a]]=right[a];//删除a 
    32             left[right[a]]=left[a];
    33             if(ch=='A')//a         移到b左边 
    34             {
    35                 left[a] = left[b];
    36                 right[a] = b;
    37                 right[left[b]] = a;
    38                 left[b] = a;
    39             }
    40             if(ch=='B')
    41             {
    42                 left[a] = b;
    43                 right[a] = right[b];
    44                 right[b] = a;
    45                 left[right[b]] = a;
    46             }
    47         }
    48         //注意输出不可直接输出right[i] 
    49         int temp = right[0];   
    50         cout<<temp;
    51         for(i=1; i<n; i++)
    52         {
    53             temp = right[temp];
    54             cout<<" "<<temp;
    55         }
    56         cout<<endl;
    57          
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    HTTP概述
    【HTTP权威指南】第二章URL与资源
    【HTTP权威指南】第三章HTTP报文
    列表生成式
    六一问候
    NYOJ 528 找球号(三)
    NYOJ 138 找球号(二)
    HDU3790 最短路径问题
    NYOJ 228 士兵杀敌(五)
    NYOJ3 3 多边形重心问题
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3000815.html
Copyright © 2011-2022 走看看