百步穿杨(HDU2550)

/*

时维九月,序属三秋,辽军大举进攻MCA山,战场上两军正交锋.辽军统帅是名噪一时的耶律-James,而MCA方则是派出了传统武将中草药123.双方经过协商,约定在十一月八日正午十分进行射箭对攻战.中草药123早早就开始准备,但是他是武将而不是铁匠,造弓箭的活就交给聪明能干的你了,现在告诉你每种弓箭规格,即箭身的长度,以及每种规格弓箭所需要的数目,要求你把需要的弓箭都输出. 弓箭的基本样子为 ">+---+>",其中"+---+"为箭身,数据保证箭身长度 > 2
 

Input

首先输入一个t,表示有t组数据,跟着t行: 每行一个N (N < 50 ),接下去有N行,第i行两个整数Ai , Bi,分别代表需要箭身长度为Ai的弓箭Bi枝. (Ai < 30 , Bi < 10 ) 输入数据保证每一个Ai都是不同的.
 

Output

按照箭身的长度从小到大的顺序依次输出所有需要的弓箭,"每一种"弓箭后输出一个空行.
*/

#include<iostream>

#include<queue>                                                                                                       

using namespace std;

struct node

{

         int a;

         int b;

         node()

         {

         }

         bool operator<(const node&b)const

         {

                   return a>b.a;

         }

};

int main()

{

         int t;

         cin>>t;

         int n,i,j,k;

         node no;

         while(t--)

         {

                   priority_queue<node>Q;

                   cin>>n;

                   for(k=0;k<n;k++)

                   {

                            cin>>no.a>>no.b;

                            Q.push(no);

                   }

                   while(n--)

                   {

                           

                            if(!Q.empty())

                            {

                            for(j=0;j<Q.top().b;j++)

                            {

                                     cout<<">+";

                                     for(i=0;i<(Q.top().a-2);i++)

                                               cout<<"-";

                                     cout<<"+>"<<endl;

                                    

                            }

                            Q.pop();

                            cout<<endl;

                            }

                   }

         }

        

         return 0;

}

posted @ 2012-11-25 14:04  ♂咱說 ろ算  阅读(283)  评论(0编辑  收藏  举报