| 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 |
