Submission #70981

# Submission time Handle Problem Language Result Execution time Memory
70981 2018-08-24T00:40:22 Z 강태규(#2201) Global Warming (CEOI18_glo) C++11
0 / 100
222 ms 3704 KB
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <functional>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cstdlib>

using namespace std;
typedef long long llong;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<llong, llong> pll;

int n, x, m;
int t[200001];
int dp[200001][2];
int cp[200000];

int find(int x) {
    return lower_bound(cp, cp + m, x) - cp + 1;
}

int seg0[200001];
int seg1[200001];
void update(int seg[], int i, int x) {
    while (i <= m) {
        seg[i] = max(seg[i], x);
        i += i & -i;
    }
}

int query(int seg[], int i) {
    int ret = 0;
    while (i) {
        ret = max(ret, seg[i]);
        i -= i & -i;
    }
    return ret;
}

int main() {
	ios_base::sync_with_stdio(false); cin.tie(0);
	scanf("%d%d", &n, &x);
	for (int i = 1; i <= n; ++i) {
        scanf("%d", t + i);
        cp[i - 1] = t[i];
	}
	sort(cp, cp + n);
	m = unique(cp, cp + n) - cp;
	for (int i = 1; i <= n; ++i) {
        int pr0 = find(t[i]);
        int pr1 = find(t[i] + x) - 1;
        int dp0 = query(seg0, pr0) + 1;
        int dp1 = max(query(seg0, pr1), query(seg1, pr0)) + 1;
        update(seg0, pr0, dp0);
        update(seg1, pr0, dp1);
	}
	printf("%d\n", max(query(seg0, m), query(seg1, m)));
	return 0;
}

Compilation message

glo.cpp: In function 'int main()':
glo.cpp:50:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &x);
  ~~~~~^~~~~~~~~~~~~~~~
glo.cpp:52:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", t + i);
         ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 168 ms 3672 KB Output is correct
2 Correct 172 ms 3672 KB Output is correct
3 Correct 175 ms 3700 KB Output is correct
4 Correct 222 ms 3704 KB Output is correct
5 Incorrect 81 ms 3704 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 39 ms 3704 KB Output is correct
2 Correct 37 ms 3704 KB Output is correct
3 Correct 41 ms 3704 KB Output is correct
4 Incorrect 19 ms 3704 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 63 ms 3704 KB Output is correct
2 Correct 71 ms 3704 KB Output is correct
3 Correct 140 ms 3704 KB Output is correct
4 Incorrect 75 ms 3704 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 340 KB Output isn't correct
2 Halted 0 ms 0 KB -