제출 #38239

#제출 시각아이디문제언어결과실행 시간메모리
38239Just_Solve_The_ProblemMoney (IZhO17_money)C++11
0 / 100
0 ms9832 KiB
#include <bits/stdc++.h>

using namespace std;

#define pii pair < int, int >
#define fr first
#define sc second
#define pb push_back
#define ok puts("ok");

const int N = (int)1e6 + 7;

pii a[N];
stack < int > st;
int ans;

main () {
    int n; scanf ("%d", &n);
    ans = n;
    for (int i = 1; i <= n; i++) {
        scanf ("%d", &a[i].fr);
        a[i].sc = i;
    }
    sort(a + 1, a + n + 1);
    for (int i = 1; i <= n; i++) {
        if (a[i].sc == a[i + 1].sc - 1) {
            ans--;
            continue;
        }
        int last = a[i].sc;
        bool fl = 0;
        if (st.size() > 1) {
            int cur = st.top();
            st.pop();
            if (st.top() + 1 == a[i].sc) {
                ans--;
                st.pop();
            } else {
                st.push(cur);
            }
        }
        while (!st.empty() && last - 1 == st.top()) {
            last = st.top();
            ans--;
//            ok
            fl = 1;
            st.pop();
        }
        if (!fl)
            st.push(a[i].sc);
    }
    cout << ans;
}

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

money.cpp:17:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main () {
       ^
money.cpp: In function 'int main()':
money.cpp:18:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     int n; scanf ("%d", &n);
                            ^
money.cpp:21:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf ("%d", &a[i].fr);
                               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...