#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
int minOperationsToDestroyArray(vector<int>& arr) {
unordered_map<int, int> freqMap;
for (int num : arr) {
freqMap[num]++;
}
int minOperations = 0;
for (auto& entry : freqMap) {
int freq = entry.second;
if (freq == 1) {
return -1; // According to Tariquddin’s law
} else {
// According to Tanmai’s Law
minOperations += freq / 3 + (freq % 3 != 0);
}
}
return minOperations;
}
int main() {
vector<int> arr = {1, 5, 5, 1, 1, 8, 8, 10, 10};
int minOps = minOperationsToDestroyArray(arr);
if (minOps == -1) {
cout << "It's not possible to destroy the array" << endl;
} else {
cout << "Minimum number of operations to destroy the array-> " << minOps << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWluT3BlcmF0aW9uc1RvRGVzdHJveUFycmF5KHZlY3RvcjxpbnQ+JiBhcnIpIHsKICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IGZyZXFNYXA7CiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBmcmVxTWFwW251bV0rKzsKICAgIH0KCiAgICBpbnQgbWluT3BlcmF0aW9ucyA9IDA7CiAgICBmb3IgKGF1dG8mIGVudHJ5IDogZnJlcU1hcCkgewogICAgICAgIGludCBmcmVxID0gZW50cnkuc2Vjb25kOwogICAgICAgIGlmIChmcmVxID09IDEpIHsKICAgICAgICAgICAgcmV0dXJuIC0xOyAvLyBBY2NvcmRpbmcgdG8gVGFyaXF1ZGRpbuKAmXMgbGF3CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIFRhbm1haeKAmXMgTGF3CiAgICAgICAgICAgIG1pbk9wZXJhdGlvbnMgKz0gZnJlcSAvIDMgKyAoZnJlcSAlIDMgIT0gMCk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIG1pbk9wZXJhdGlvbnM7Cn0KCmludCBtYWluKCkgewogICAgdmVjdG9yPGludD4gYXJyID0gezEsIDUsIDUsIDEsIDEsIDgsIDgsIDEwLCAxMH07CiAgICBpbnQgbWluT3BzID0gbWluT3BlcmF0aW9uc1RvRGVzdHJveUFycmF5KGFycik7CiAgICBpZiAobWluT3BzID09IC0xKSB7CiAgICAgICAgY291dCA8PCAiSXQncyBub3QgcG9zc2libGUgdG8gZGVzdHJveSB0aGUgYXJyYXkiIDw8IGVuZGw7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgIk1pbmltdW0gbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8gZGVzdHJveSB0aGUgYXJyYXktPiAiIDw8IG1pbk9wcyA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K