제출 #50203

#제출 시각아이디문제언어결과실행 시간메모리
50203rondojim중앙값 배열 (balkan11_medians)C++17
0 / 100
121 ms24124 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; int A[2 * MAXN], B[MAXN], N, vis[2 * MAXN]; set<int> S; int main(){ scanf("%d", &N); for(int i=1; i<=N; ++i) scanf("%d", &B[i]); for(int i=1; i<2*N; ++i) S.insert(i); for(int i=1; i<N; ++i){ if(S.find(B[i]) != S.end()) S.erase(S.find(B[i])); } A[1] = B[1]; for(int i=N; i>=2; --i){ int p = B[i - 1], c = B[i]; set<int>::iterator it; if(c > p){ for(int j=2*i-1; j>=2*i-2; --j){ auto it = S.lower_bound(B[i]); A[j] = *it; S.erase(it); } } else if(c < p){ for(int j=2*i-1; j>=2*i-2; --j){ it = S.lower_bound(B[i - 1]); if(*it >= B[i - 1]) --it; A[j] = *it; S.erase(it); } } else{ it = S.upper_bound(B[i]); A[2 * i - 1] = *it; S.erase(it); it = S.lower_bound(B[i]); if(*it >= B[i]) --it; A[2 * i - 2] = *it; S.erase(it); } if(!vis[B[i]]){ S.insert(B[i]); vis[B[i]] = 1; } } for(int i=1; i<2*N; ++i) printf("%d ", A[i]); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

medians.cpp: In function 'int main()':
medians.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
  ~~~~~^~~~~~~~~~
medians.cpp:12:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i=1; i<=N; ++i) scanf("%d", &B[i]);
                          ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...