제출 #1000084

#제출 시각아이디문제언어결과실행 시간메모리
1000084daffuwuGlobal Warming (CEOI18_glo)C++14
100 / 100
46 ms3712 KiB
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

int n, x, t[200069], ans, r[200069];
vector<int> vc;

int main() 
{
    int i, j;
    scanf("%d%d", &n, &x);
    for (i=1; i<=n; i++)
    {
        scanf("%d", t+i);
    }
    for (i=n; i>=1; i--)
    {
        auto it = lower_bound(vc.begin(), vc.end(), -t[i]);
        if (it == vc.end()) 
        {
            vc.push_back(-t[i]);
            r[i] = vc.size();
        }  else 
        {
            *it = -t[i];
            r[i] = it-vc.begin()+1;
        }
    }
    vc.clear();
    for (i=1; i<=n; i++)
    {
        auto it = lower_bound(vc.begin(), vc.end(), t[i]);
        if (it == vc.end()) vc.push_back(t[i]);
        else *it = t[i];
        j = upper_bound(vc.begin(), vc.end(), t[i+1]+x-1)-vc.begin();
        ans = max(ans, j+r[i+1]);
    }
    printf("%d\n", ans);
}

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

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