Task: | Järjestys |
Sender: | Olli |
Submission time: | 2020-11-27 18:37:22 +0200 |
Language: | C++ (C++11) |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 26 |
#2 | ACCEPTED | 74 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2 | details |
#2 | ACCEPTED | 0.01 s | 2 | details |
#3 | ACCEPTED | 0.01 s | 2 | details |
Code
#include <iostream> #include <fstream> #include <vector> #include <algorithm> #include <queue> #include <stack> #include <set> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define F first #define S second #define X first #define Y second const int N = 1e5 + 5; const ll INF = 1e18; const ll M = 1e9 + 7; int main() { int t; cin >> t; while(t > 0) { --t; int n; cin >> n; int x; cin >> x; vector<int> a; for(int i = 1; i <= n; ++i) { int A; cin >> A; a.push_back(A); } sort(a.begin(), a.end()); ll ans = 1; for(int i = 2; i <= n; ++i) { //Add a[i] ll cur = 1; for(int j = 0; j < i-1; ++j) { if(a[j] >= a[i-1] - x) { ++cur; } } ans *= cur; ans %= M; } cout << ans << "\n"; } }
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
100 5 20 65 49 97 55 9 6 33 42 32 10 92 60 37 ... |
correct output |
---|
6 192 4 72 288 ... |
user output |
---|
6 192 4 72 288 ... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
input |
---|
100 85 980 570 804 393 119 973 743 345 46... |
correct output |
---|
753889928 541098438 241592657 827522722 403761060 ... |
user output |
---|
753889928 541098438 241592657 827522722 403761060 ... Truncated |
Test 3
Group: 2
Verdict: ACCEPTED
input |
---|
100 100 1 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
988185646 196898158 546822979 56844088 346866189 ... |
user output |
---|
988185646 196898158 546822979 56844088 346866189 ... Truncated |