Он показывает ошибку времени выполнения.
Дан массив A (может содержать дубликаты) из N элементов и положительное целое число K. Задача состоит в том, чтобы подсчитать количество элементов, которое встречается ровно пол(N/K) раз в массиве.
Ввод:
Первая строка ввода содержит количество тестовых наборов. Для каждого тестового набора будет две строки, первая из которых содержит N и K, а вторая - элементы массива.
Выход:
Для каждого тестового случая выведите количество элементов в массиве, которое происходит ровно пол(N/K) раз.
Ограничения:
1 <= T <= 100
1 <= N <= 103
1 <= Ai <= 103
1 <= K <= 103
для тестового случая:
1
5 2
1 1 1 1000 1000
Что я уже пробовал:
#include <bits/stdc++.h> using namespace std; int countSpecials(int[], int, int); int main() { int testcase; cin >> testcase; while(testcase--){ int sizeof_array, K; cin >> sizeof_array >> K; int arr[sizeof_array]; for(int i = 0;i<sizeof_array;i++){ cin >> arr[i]; } cout << countSpecials(arr, sizeof_array, K) << endl; } return 0; } int countSpecials(int arr[], int sizeof_array, int K){ int f = floor(sizeof_array/K), count = 0; int i,key[1000]={0},p; for(i=0;i<sizeof_array;i++) p=arr[i]; { if(p>=1 && p<=1000) key[p]++; } for(i=1;i<sizeof_array;i++) { if(f==key[i]) count++; } return count; }
CHill60
В чем заключается ваш вопрос?
Если речь идет о том, как исправить ошибку, то дайте нам все подробности этой ошибки
Prateek Krishna
извиняюсь
мой обновленный вопрос звучит так: "он показывает неправильный ответ"
как это исправить?