제출 #259928

#제출 시각아이디문제언어결과실행 시간메모리
259928ly20Global Warming (CEOI18_glo)C++17
100 / 100
99 ms4344 KiB
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 212345, INF = 2 * 1e9 + 10;
stack <pair <int, int> > pl;
int v[MAXN], lis1[MAXN], lis2[MAXN];
int main() {
	int n, t;
	scanf("%d %d", &n, &t);
	lis1[0] = -INF; lis2[0] = -INF;
	for(int i = 1; i <= n; i++) {
		scanf("%d", &v[i]);
		lis1[i] = INF; lis2[i] = INF;
	}
	int r1 = 0;
	for(int i = n; i >= 1; i--) {
		int id = lower_bound(lis1, lis1 + n, -v[i] - t) - lis1;
		pl.push(make_pair(lis1[id], id));
		lis1[id] = -v[i] - t;
		r1 = max(r1, id);
	}
	for(int i = 1; i <= n; i++) {
		lis1[pl.top().second] = pl.top().first;
		pl.pop();
		int id = lower_bound(lis2, lis2 + n, v[i]) - lis2;
		lis2[id] = v[i];
		int id1 = lower_bound(lis1, lis1 + n, -v[i]) - lis1;
		r1 = max(r1, id + id1 - 1);
		//printf("%d %d %d\n", i, id, id1);
	}
	printf("%d\n", r1);
}

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

glo.cpp: In function 'int main()':
glo.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &t);
  ~~~~~^~~~~~~~~~~~~~~~~
glo.cpp:11:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &v[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...