結果

問題 No.1990 Candy Boxes
ユーザー みここみここ
提出日時 2022-06-24 23:04:01
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,160 bytes
コンパイル時間 839 ms
コンパイル使用メモリ 72,488 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-20 15:30:48
合計ジャッジ時間 4,776 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4 WA * 1
other AC * 58 WA * 13
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:46:15: warning: 'h' may be used uninitialized [-Wmaybe-uninitialized]
   46 |     if(h[n - 1] != 0)
      |        ~~~~~~~^
main.cpp:15:9: note: 'h' declared here
   15 |     int h[200005];
      |         ^

ソースコード

diff #

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int b[200005];
    for(int i = 0; i < n; i++)
    {
        cin >> b[i];
    }
    b[n++] = 0;
    int h[200005];
    int d[200005];
    stack<int> st;
    for(int i = 0; i < n; i++)
    {
        d[i] = b[i];
        if(i)
        {
            d[i] -= d[i - 1];
        }
        if(st.empty() && d[i] == 0)
        {
            h[i] = 0;
            continue;
        }
        if(st.size() && b[i] % 2 == b[st.top()] % 2)
        {
            h[i] = h[st.top()];
            st.pop();
        }
        else
        {
            st.push(i);
            h[i] = st.size();
        }
        if(h[i] > b[i])
        {
            cout << "No" << endl;
            return 0;
        }
    }
    if(h[n - 1] != 0)
    {
        cout << "No" << endl;
        return 0;
    }
    for(int i = 0; i < n - 1; i++)
    {
        if(b[i] > b[i + 1])
        {
            cout << "No" << endl;
            return 0;
        }
        b[i + 1] -= b[i];
    }
    if(b[n - 1])
    {
        cout << "No" << endl;
        return 0;
    }
    cout << "Yes" << endl;
}
0