程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> (hdu step 1.3.4)百步穿楊

(hdu step 1.3.4)百步穿楊

編輯:C++入門知識

(hdu step 1.3.4)百步穿楊


題目:

百步穿楊

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4043 Accepted Submission(s): 1380 Problem Description時維九月,序屬三秋,遼軍大舉進攻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按照箭身的長度從小到大的順序依次輸出所有需要的弓箭,"每一種"弓箭後輸出一個空行.
Sample Input
1
4
3 4
4 5
5 6
6 7
Sample Output
>+-+>
>+-+>
>+-+>
>+-+>

>+--+>
>+--+>
>+--+>
>+--+>
>+--+>

>+---+>
>+---+>
>+---+>
>+---+>
>+---+>
>+---+>

>+----+>
>+----+>
>+----+>
>+----+>
>+----+>
>+----+>
>+----+>
AuthorTeddy Source2008“缤紛下沙校園文化活動月”之大學生程序設計競賽暨新生專場 Recommendlcy



題目分析:

大水題,不解釋。


代碼如下:

/*
 * d.cpp
 *
 *  Created on: 2015年1月29日
 *      Author: Administrator
 */

#include 
#include 

using namespace std;

const int maxn = 55;

/**
 * 打印弓箭
 */
void printArrow(int length, int num) {
	int j;
	for (j = 0; j < num; ++j) {
		printf(">+");
		int i;
		for (i = 0; i < (length - 2); ++i) {
			printf("-");
		}
		printf("+>\n");
	}
//	printf("\n");
}

struct Arrow {
	int length;
	int nums;
} arrow[maxn];

bool cmp(Arrow a, Arrow b) {
	if (a.length < b.length) {
		return true;
	}

	return false;
}

int main() {
	int t;
	scanf("%d", &t);

	while (t--) {
		int n;
		scanf("%d", &n);

		int i;
		for (i = 0; i < n; ++i) {
			scanf("%d%d", &arrow[i].length, &arrow[i].nums);
		}

		sort(arrow, arrow + n, cmp);//注意要對數據先排序...

		for (i = 0; i < n; ++i) {
			printArrow(arrow[i].length, arrow[i].nums);

			printf("\n");
		}

	}

	return 0;
}



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved