Submission #44638

#TimeUsernameProblemLanguageResultExecution timeMemory
44638RayaBurong25_1Editor (BOI15_edi)C++17
20 / 100
3111 ms524288 KiB
#include <stdio.h>
#include <vector>
int Val[300005];
std::vector<std::pair<int, int> > Last[300005];
int main()
{
    int N;
    scanf("%d", &N);
    int i, x;
    std::vector<std::pair<int, int> >::iterator it;
    for (i = 1; i <= N; i++)
    {
        scanf("%d", &x);
        if (x > 0)
        {
            Val[i] = x;
            Last[i] = Last[i - 1];
            Last[i].push_back({0, i - 1});
            printf("%d\n", Val[i]);
        }
        else
        {
            it = Last[i - 1].end();
            it--;
            while (it->first <= x) it--;
            Val[i] = Val[it->second];
            Last[i] = Last[it->second];
            Last[i].push_back({x, i - 1});
            printf("%d\n", Val[i]);
        }
    }
}

Compilation message (stderr)

edi.cpp: In function 'int main()':
edi.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &N);
     ~~~~~^~~~~~~~~~
edi.cpp:13:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &x);
         ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...