제출 #72048

#제출 시각아이디문제언어결과실행 시간메모리
72048마릴린 희정 (#118)박스런 (FXCUP3_box)C++17
0 / 100
4 ms536 KiB
#include<bits/stdc++.h> using namespace std; int N; int H[1010101]; int ans[1010101]; int main() { scanf("%d", &N); for(int i=0; i<N; ++i) scanf("%d", H+i); H[N] = (int)1e9+1; int from = 0, to = 0; multiset<int> S; S.insert(H[0]); for(int t=0; t<N; ++t) { while(*S.rbegin() > H[to+1]) { S.insert(H[++to]); S.erase(S.find(H[from++])); } //printf("%d %d\n", from, to); ans[t] = to+1; if(from == 0) S.insert(H[++to]); else S.insert(H[--from]); } for(int i=0; i<N; ++i) if(ans[i] == N) printf("-1 "); else printf("%d ", ans[i]-i); puts(""); return 0; }

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

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