Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int main()
- {
- int T;
- scanf("%d",&T);
- for(int t = 1 ; t <= T ; t ++){
- int n;
- scanf("%d",&n);
- int cball[n];
- int sumball = 0;
- for(int i = 0 ; i < n ; i ++){
- scanf("%d",&cball[i]);
- sumball += cball[i];
- }
- if(sumball != n || cball[0] == 0 || cball[n-1] == 0){
- printf("Case #%d: IMPOSSIBLE\n",t);
- continue;
- }
- int nextball = 0;
- char ans[110][n+1];
- for(int i = 0 ; i < 110 ; i++){
- for(int j = 0 ; j < n ; j ++)ans[i][j] = '.';
- ans[i][n] = '\0';
- }
- int maxlevel = 0;
- for(int i = 0 ; i < n ; i ++){
- if(cball[i] == 0)continue;
- int cnt = cball[i];
- if(nextball <= i){ //left
- int level = i - nextball;
- int start = nextball;
- for(int idx = start ; idx <= i; idx ++){
- if(level != 0)ans[level][idx] = '\\';
- if(level > maxlevel)maxlevel = level;
- if(cnt > 0){
- nextball++;
- cnt--;
- }
- level --;
- }
- }
- if(cnt > 0){ //right
- int level = 1;
- for(int idx = i + 1 ; idx < n && cnt > 0 ; idx ++){
- ans[level][idx] = '/';
- if(level > maxlevel)maxlevel = level;
- nextball = idx + 1;
- cnt--;
- level++;
- }
- }
- }
- printf("Case #%d: %d\n",t,maxlevel+1);
- for(int lv = maxlevel ; lv >= 0 ; lv --){
- printf("%s\n",ans[lv]);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement