#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1000000007;
const int inf = 1000005;
const int sz = 100005;
int n;
void solve(){
cin>>n;
string s;
cin>>s;
int mx1 = 0, mx2 = 0, l = 0;
for(int i=0; i<s.size(); ++i){
if(s[i] == '+'){
l++;
mx1 = max(mx1, l);
}
else if(s[i] == '-'){
l = 0;
}
}
l = 0;
for(int i=0; i<s.size(); ++i){
if(s[i] == '-'){
l++;
mx2 = max(mx2, l);
}
else if(s[i] == '+'){
l = 0;
}
}
int col = max(mx1, mx2);
char g[col][n];
for(int i=0; i<col; ++i){
for(int j=0; j<n; ++j){
g[i][j] = '.';
}
}
// c1 = c2 = 0;
int x1 = s.find('+'), x2 = s.find('-');
if(x1 == string::npos){
// ancaq menfi var
// cout<<"SALAM";
int row = 0;
for(int i=0; i<n; ++i){
if(s[i] == '-'){
g[row++][i] = '\\';
}
else if(s[i] == '='){
if(row >= col) row--;
g[row][i] = '_';
}
}
for(int i=0; i<col; ++i){
for(int j=0; j<n; ++j){
cout<<g[i][j];
}
cout<<endl;
}
return;
}
if(s.find('-') == string::npos){
// ancaq musbet var
int row = col - 1;
for(int i=0; i<n; ++i){
if(s[i] == '+'){
g[row--][i] = '/';
}
else if(s[i] == '='){
if(row < 0) row++;
g[row][i] = '_';
}
}
for(int i=0; i<col; ++i){
for(int j=0; j<n; ++j){
cout<<g[i][j];
}
cout<<endl;
}
return;
}
int cnt1 = 0; // musbet
for(int i=x1; i<s.size(); ++i){
if(s[i] == '+'){
cnt1++;
}
else if(s[i] == '-'){
break;
}
}
int cnt2 = 0;
for(int i=x2; i<s.size(); ++i){
if(s[i] == '-'){
cnt2++;
}
else if(s[i] == '+'){
break;
}
}
if(x1 < x2){
// musbet birinci gelir
int row = col - 1;
if(cnt2 >= cnt1){
// menfi maximum
row = cnt1;
}
for(int i=0; i<n; ++i){
// if(row < 0) row++;
// if(row > 0) row--;
if(s[i] == '+'){
g[row--][i] = '/';
if(row < 0) row++;
}
else if(s[i] == '-'){
g[row++][i] = '\\';
if(row >= col) row--;
}
else{
g[row][i] = '_';
}
}
for(int i=0; i<col; ++i){
for(int j=0; j<n; ++j){
cout<<g[i][j];
}
cout<<endl;
}
return;
}
else{
// birinci menfi olarsa:
int row = 0;
if(cnt2 <= cnt1){
// menfi maximum
row = col - cnt2;
}
for(int i=0; i<n; ++i){
// if(row < 0) row++;
// if(row > 0) row--;
if(s[i] == '+'){
g[row--][i] = '/';
if(row < 0) row++;
}
else if(s[i] == '-'){
g[row++][i] = '\\';
if(row >= col) row--;
}
else{
g[row][i] = '_';
}
}
for(int i=0; i<col; ++i){
for(int j=0; j<n; ++j){
cout<<g[i][j];
}
cout<<endl;
}
return;
}
// for(int i=0; i<col; ++i){
// for(int j=0; j<n; ++j){
// cout<<g[i][j];
// }
// cout<<endl;
// }
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
// freopen("stdin", "r",stdin);
// freopen("stdout", "w",stdout);
int t=1;
// cin>>t;
while(t--) solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |