GDUFE ACM-1033
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDUFE ACM-1033相关的知识,希望对你有一定的参考价值。
造箭?
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
一年一度的GDCC校运会即将隆重开幕!今年新增了一项射箭大赛,好酷~你也想参加了,不过组委会不提供弓箭╯﹏╰那就只好选手自己带了。现在来锻造弓箭,包括箭身的长度l,不同长度的弓箭所需要的数目n,要求你把需要的弓箭都输出.弓箭的基本样子为 ">+---+>",其中"+---+"为箭身,数据保证箭身长度 > 2。好了,工欲善其事必先利其器,造箭啦!!
Input:
首先输入一个数t,表示有t组数据, 每组数据先有一个m(m<50),接下去有m行, 第i行两个整数l,n,分别代表箭身长度为l的弓箭有n支,(l< 30 , n< 10 ) 输入数据保证每个l>2且都不同
Output:
按照箭身的长度从小到大的顺序依次输出所有需要的弓箭,每种规格的弓箭后面有一空行。
Sample Input:
1 3 2 3 8 2 4 5
Sample Output:
>++> >++> >++> >+--+> >+--+> >+--+> >+--+> >+--+> >+------+> >+------+>
这道题挺有趣的:1.输入不再像以前那样输入一个回车后就打印,而是输入全部数据后才开始打印。
2.要排序n个数。
3.空格有点坑,每组箭间有一个空格。
附上AC代码:
1 #include <stdio.h> 2 int main() 3 { 4 int t,n,a[100],b[100],i,j,p,p1,k[100],m,m1; 5 scanf("%d",&t); 6 while(t--) 7 { 8 scanf("%d",&n); 9 for(i=0;i<n;i++) 10 { 11 scanf("%d%d",&a[i],&b[i]); 12 k[i]=a[i]; 13 } 14 for(j=0;j<n-1;j++) 15 { 16 for(i=0;i<n-1-j;i++) 17 { 18 if(k[i]>k[i+1]) 19 { 20 p=k[i]; 21 k[i]=k[i+1]; 22 k[i+1]=p; 23 p1=b[i]; 24 b[i]=b[i+1]; 25 b[i+1]=p1; 26 } 27 28 } 29 } 30 for(i=0;i<n;i++) 31 { 32 for(m=0;m<b[i];m++) 33 { 34 printf(">+"); 35 for(m1=0;m1<k[i]-2;m1++) 36 printf("-"); 37 printf("+>\n"); 38 } 39 printf("\n"); 40 } 41 } 42 return 0; 43 }
嗯,就这样。。。。。。。。。
以上是关于GDUFE ACM-1033的主要内容,如果未能解决你的问题,请参考以下文章