/*
#include <stdio.h>
#include <string.h>
char chess[52][52];
char chess1[8][8]={{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'}};
char chess2[8][8]={{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'},
{'W','B','W','B','W','B','W','B'},
{'B','W','B','W','B','W','B','W'}};
int Min(int a, int b) {
return (a>b ? b : a);
}
int main() {
int m, n, min_1=0, min_2=0, min=2501;
scanf("%d %d", &m, &n);
for(int i=0; i<m; i++) {
scanf("%s", chess[i]);
}
//debuging
for(int i=0; i<m; i++, puts("")) {
for(int j=0; j<n; j++)
printf("%c", chess[i][j]);
}
for(int i=0; i<m-7; i++) {
for(int j=0; j<n-7; j++) {
int min_1=0, min_2=0;
for(int k=i; k<i+8; k++) {
for(int h=j; h<j+8; h++) {
if(chess1[k-i][h-j]!=chess[k][h]) min_1++;
if(chess2[k-i][h-j]!=chess[k][h]) min_2++;
}
}
//printf("%d %d\n", min_1,min_2);
if(min > Min(min_1, min_2)) min = Min(min_1, min_2);
}
}
printf("%d", min);
}
*/
/* 프린터 큐
#include <stdio.h>
#include <algorithm>
#include <queue>
using namespace std;
struct doc
{
int im; //중요도
int order; //문서 번호
};
bool cmp(int a, int b) {
return a>b; //내림차순
}
int main() {
int t;
scanf("%d", &t);
for(int i=0; i<t; i++) {
int n, m, m_im;
scanf("%d %d", &n, &m);
queue<doc> q; //문서번호, 중요도 저장
int IM[110]; //중요도 저장
for(int i=0; i<n; i++) {
int a;
scanf("%d", &a);
q.push({a, i});
IM[i]=a;
if(m==i) m_im=a; //m번째 위치 중요도 저장
}
sort(IM, IM+n, cmp); //중요도 오름차순 정렬
int cnt=1;
while(!q.empty()) {
doc v = q.front();
q.pop();
if(v.im==IM[cnt-1]) {
if(v.im == m_im && v.order == m)
printf("%d", cnt);
cnt++;
}
else {
q.push(v);
}
}
puts("");
}
}
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct word{
char s[55];
int len;
};
bool cmp(word s1, word s2) {
if(s1.len != s2.len) return s1.len < s2.len;
return strcmp(s1.s, s2.s) < 0;
}
int main() {
int n;
scanf("%d", &n);
struct word W[20000];
for(int i=0; i<n; i++) {
scanf("%s", W[i].s);
W[i].len = strlen(W[i].s);
}
sort(W, W+n, cmp);
printf("%s\n", W[0].s);
for(int i=1; i<n; i++) {
if(strcmp(W[i].s, W[i-1].s))
printf("%s\n", W[i].s);
}
}
*/
#include <stdio.h>
//#include <stack>
int arr[100010], arr2[100010], Max=-1;
int main() {
int n, flag=0;
scanf("%d", &n);
for(int i=0; i<n; i++) {
int k;
scanf("%d", &k); arr[k]=1; arr2[i]=k;
if(Max<k) Max=k;
else {
for(int j=Max; j>k; j--) {
if(arr[j]==0) {
flag=1; break;
}
}
}
if(flag) break;
}
if(flag) printf("NO");
else {
//std::stack<int> s; //s : 1~n 저장
int cnt=0, in=1;
while(cnt<n) {
if(arr2[cnt]>in) {
in++;
//std::s.push(in++);
printf("+\n");
}
else if(arr2[cnt]<in) {
printf("-\n");
cnt++;
//std::s.pop();
}
else {
printf("+\n-\n");
in++; cnt++;
}
}
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: