Submission #597637

# Submission time Handle Problem Language Result Execution time Memory
597637 2022-07-16T12:50:41 Z gary4988 A Huge Tower (CEOI10_tower) C++17
100 / 100
324 ms 8772 KB
#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 9;

int main () {
    // freopen("tower.in", "r", stdin);
	int n, d;
	cin >> n >> d;
	vector<int> a(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}

	sort(a.begin(), a.end()); 

	int r = n-1, l = n-1, sol = 1;   // all pointers start at right end, l move first

	for (int r = n-1; r > 0; r--) {
		while (l >= 0 && a[r] - a[l] <= d) {
            l--;
        }
        // at this point, (l, r]
		int b = r - l;
		sol = (sol * 1LL * b) % MOD;
	}
	cout << sol << '\n';
}

Compilation message

tower.cpp: In function 'int main()':
tower.cpp:17:6: warning: unused variable 'r' [-Wunused-variable]
   17 |  int r = n-1, l = n-1, sol = 1;   // all pointers start at right end, l move first
      |      ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 296 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 296 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 352 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 440 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 876 KB Output is correct
2 Correct 30 ms 952 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 126 ms 3680 KB Output is correct
2 Correct 114 ms 3684 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 324 ms 8772 KB Output is correct
2 Correct 256 ms 8204 KB Output is correct