Guest User

Untitled

a guest
May 24th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int C, B[110], to[110];
  5. char mp[11000][110];
  6. void Solve(){
  7. memset(mp, '.', sizeof(mp));
  8. scanf("%d", &C);
  9. for(int i = 0 ; i < C ; i++)
  10. scanf("%d", &B[i]);
  11. if(B[0] == 0 || B[C - 1] == 0){
  12. printf("IMPOSSIBLE\n");
  13. return;
  14. }
  15. int now = 0, l = 0;
  16. for(int i = 0 ; i < C ; i++){
  17. while(B[now] == 0) now++;
  18. while(B[now] > 0 && l <= i){
  19. to[l] = now;
  20. l++;
  21. B[now]--;
  22. }
  23. }
  24. //for(int i = 0 ; i < C ; i++)
  25. //printf("%d ", to[i]);
  26. //puts("");
  27. int rows = 1;
  28. for(int i = 0 ; i < C ; i++){
  29. if(to[i] != i){
  30. int st = (to[i] - i) / abs(to[i] - i);
  31. for(int j = i ; j != to[i] ; j += st){
  32. mp[rows++][j] = st == 1 ? '\\' : '/';
  33. }
  34. }
  35. }
  36. printf("%d\n", rows);
  37. for(int i = 0 ; i < rows ; i++) {
  38. for(int j = 0 ; j < C ; j++) {
  39. printf("%c", mp[i][j]);
  40. }
  41. printf("\n");
  42. }
  43. }
  44.  
  45. int main(){
  46. int T;
  47. scanf("%d", &T);
  48. for(int i = 1 ; i <= T ; i++){
  49. printf("Case #%d: ", i);
  50. Solve();
  51. }
  52. return 0;
  53. }
Add Comment
Please, Sign In to add comment