Submission #1306809

#TimeUsernameProblemLanguageResultExecution timeMemory
1306809yusif_agalarliCrtanje (COCI20_crtanje)C++20
30 / 50
1 ms572 KiB
#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 timeMemoryGrader output
Fetching results...