답안 #328549

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
328549 2020-11-17T04:46:23 Z nandonathaniel Crtanje (COCI20_crtanje) C++14
50 / 50
1 ms 364 KB
#include<bits/stdc++.h>
using namespace std;

char a[105],ans[105][105];
int out[105];

int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n,depth=0,depthMin=205,depthMax=-1;
	char x='?';
	cin >> n;
	for(int i=1;i<=n;i++){
		char prv=x;
		cin >> x;
		if(x!=prv){
			if((prv=='=' && x=='+') || (prv=='-' && x=='+') || (prv=='-' && x=='=') || (prv=='+' && x=='-')){
				out[i]=depth;
				if(x=='-'){
					a[i]='\\';
				}
				else if(x=='+'){
					a[i]='/';
				}
				else a[i]='_';
			}
			else{
				if(x=='-'){
					depth--;
					a[i]='\\';
				}
				else if(x=='='){
					depth++;
					a[i]='_';
				}
				else{
					a[i]='/';
				}
				out[i]=depth;
			}
		}
		else{
			if(x=='-'){
				a[i]='\\';
				depth--;
			}
			else if(x=='+'){
				a[i]='/';
				depth++;
			}
			else a[i]='_';
			out[i]=depth;
		}
//		cout << out[i] << " ";
		depthMin=min(depthMin,out[i]);
		depthMax=max(depthMax,out[i]);
	}
	int baris=depthMax+1-depthMin;
	for(int i=1;i<=baris;i++){
		for(int j=1;j<=n;j++)ans[i][j]='.';
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(out[j]==depthMax+1-i)ans[i][j]=a[j];
		}
	}
	for(int i=1;i<=baris;i++){
		for(int j=1;j<=n;j++)cout << ans[i][j];
		cout << '\n';
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct