題目:
1 4 3 4 4 5 5 6 6 7Sample 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; }