# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
473766 | Ahmed_Solyman | Crtanje (COCI20_crtanje) | C++14 | 4 ms | 844 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll valid(ll i){
if(i>=0 && i<n)return 1;
return 0;
}
char con(char c){
if(c=='+')return '/';
else if(c=='-')return 92;
else return '-';
}
int main()
{
cin>>n;
string s;cin>>s;
vector<vector<char>>ans(n,vector<char>(n,'.'));
for(ll start=0;start<n;start++){
ll prev=-1;
vector<vector<char>>temp(n,vector<char>(n,'.'));
bool b=1;
char c;
for(ll i=0;i<n;i++){
if(prev==-1){
temp[start][i]=con(s[i]);
prev=start;
c=s[i];
}
else{
ll x=0;
if(s[i]=='-' && c=='-')x++;
else if(s[i]=='+' && c=='+')x--;
else if(s[i]=='='){
if(c=='+')x--;
else if(c=='-')x++;
}
ll j=prev+x;
if(!valid(j)){
b=0;
break;
}
else{
temp[j][i]=con(s[i]);
prev=j;
c=s[i];
}
}
}
if(b){
ans=temp;
break;
}
}
map<pair<ll,ll>,bool>un_valid;
for(ll i=0;i<n;i++){
bool b=0;
for(ll j=0;j<n;j++){
b|=(ans[i][j]!='.');
}
if(!b){
for(ll j=0;j<n;j++){
un_valid[{i,j}]=1;
}
}
}
for(ll i=0;i<n;i++){
bool b=0;
for(ll j=0;j<n;j++){
b|=(ans[j][i]!='.');
}
if(!b){
for(ll j=0;j<n;j++){
un_valid[{j,i}]=1;
}
}
}
for(ll i=0;i<n;i++){
bool b=0;
for(ll j=0;j<n;j++){
if(un_valid[{i,j}]){
continue;
}
b=1;
cout<<ans[i][j];
}
if(b)cout<<endl;
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |