Я делаю это проблемы. Когда я запускаю visual-studio-17, вывод будет 2474 (правильный вывод), но когда я бегу по ideone.com, вывод не совпадает, когда я изменяю свой МАКС (2482,2492, ..), и я подхожу к хакерранк и я получил неправильный ответ в этом тестовом случае
Проблемы это: https://www.hackerrank.com/challenges/beautiful-triplets
Входные данные: https://hr -testcases-us-east-1.s3.amazonaws.com / 20732 / input02.txt? AWSAccessKeyId = AKIAJ4WZFDFQTZRGO3QA & Expires = 1554374777 & Подпись = WVWUm7% 2FN% -представление 2% -дополнить процентное соотношение: текст% 2Fplain
Выход:
https://hr -testcases-us-east-1.s3.amazonaws.com / 20732 / output02.txt? AWSAccessKeyId = AKIAJ4WZFDFQTZRGO3QA & Истекает = 1554375487 & Подпись = HQS% 2Fty2jXLomcsaAgPHwI61ZLk8% 3D & отклика Content-Type = текст% 2Fplain
Вот мой код:
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#define MAX 30000
using namespace std;
long long d[MAX],dd[MAX];
int main()
{
freopen("beautifultriplets.inp", "r", stdin);
freopen("beautifultriplets.out", "w", stdout);
long long n, k,x;
for(long long i = 0; i < MAX; i++)
dd[i] = 1;
vector<int>a;
cin >> n >> k;
for (long long i = 0; i < n; i++)
{
cin >> x;
a.push_back(x);
d[x]++;
}
for (long long i = 1; i < n; i++)
{
if (d[a[i] - k] > 0)
{
dd[a[i]]=dd[a[i] - k]+1;
}
}
long long ans = 0;
for (long long i = 0; i < n; i++)
{
//cout << dd[a[i]] << " ";
if (dd[a[i]] >= 3)
ans += d[a[i]] * d[a[i] - k] * d[a[i] - k - k];
}
cout << ans;
return 0;
}