Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:OLE??In Reply To:OLE?? Posted by:direfire at 2006-10-29 03:16:41 #include <iostream> #include <sstream> #include <string> #include <vector> #include <set> #include <map> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cmath> #include <math.h> #include <string.h> using namespace std; #define REP(i, n) for(int i = 0; i<(n); i++) #define abs(a) ((a) >= 0 ? (a) : -(a)) #define inf 999999999 typedef vector<int> VI; typedef vector<string> VS; typedef long long i64; typedef unsigned long long u64; int main() { int n; VS v; while(1) { scanf("%d", &n); if (n == 0) { for (int i = 0; i < 60; i++) printf("-"); printf("\n"); } v.clear(); char buf[61]; for (int i = 0; i < n; i++) { scanf("%s", &buf); string t = buf; v.push_back(buf); } sort(v.begin(), v.end()); int len = 0; for (int i = 0; i < n; i++) if (v[i].length() > len) len = v[i].length(); int R = 1; for (R = 1; R <= n; R++) { int p = n/R; int q = n%R; int dd; if (q == 0) dd = (p-1)*(len+2) + len; else dd = p*(len+2)+len; if (dd<=60) break; } int p = n/R; int q = n%R; for (int i = 0; i < 60; i++) printf("-"); printf("\n"); for (int i = 0; i < R; i++) { int pnum; if (q!=0 && i < q) pnum = p+1; else pnum = p; for (int j = 0; j < pnum-1; j++) { printf("%s", v[j*R+i].c_str()); for (int k = 0; k < len - v[j*R+i].length() + 2; k++) printf(" "); } printf("%s\n", v[(pnum-1)*R+i].c_str()); } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator