BS 0.0.1 Runtime/Generic/Sequence
This commit is contained in:
@@ -9,19 +9,31 @@ namespace Convention
|
|||||||
namespace Generics
|
namespace Generics
|
||||||
{
|
{
|
||||||
|
|
||||||
class IIterator
|
template<typename Element,typename ReadValueType = Element&>
|
||||||
|
class ISequenceIterator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~ISequenceIterator() {}
|
||||||
|
virtual void Next() abstract;
|
||||||
|
virtual ReadValueType ReadValue() const abstract;
|
||||||
|
virtual decltype(auto) operator++()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
ReadValueType operator++(int) noexcept(noexcept(operator++))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename>
|
template<typename Element, typename SequenceIterator = ISequenceIterator<Element>>
|
||||||
class ISequence
|
class ISequence
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
using iterator = std::enable_if<std::is_base_of_v<ISequenceIterator<Element>, SequenceIterator>, SequenceIterator>;
|
||||||
virtual ~ISequence() {}
|
virtual ~ISequence() {}
|
||||||
virtual IIterator begin() abstract;
|
virtual iterator begin() abstract;
|
||||||
virtual IIterator end() abstract;
|
virtual iterator end() abstract;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -7,35 +7,8 @@ using namespace std;
|
|||||||
#include<map>
|
#include<map>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
using ll = long long;
|
|
||||||
int n = 0;
|
|
||||||
const int N = 1e6 + 2;
|
|
||||||
ll a[N], f[N];
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
// 请在此输入您的代码
|
|
||||||
map<int, int> flag;
|
|
||||||
cin >> n;
|
|
||||||
f[1] = 1;
|
|
||||||
f[2] = 1;
|
|
||||||
for (int i = 3; i <= n; i++)
|
|
||||||
{
|
|
||||||
f[i] = f[i - 1] + f[i - 2];
|
|
||||||
}
|
|
||||||
for (int i = 1; i <= n; i++)
|
|
||||||
{
|
|
||||||
int temp = 0;
|
|
||||||
cin >> temp;
|
|
||||||
if (temp % f[i] == 0)
|
|
||||||
{
|
|
||||||
flag[temp / f[i]]++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int maxs = 0;
|
|
||||||
for (auto i = flag.begin(); i != flag.end(); ++i)
|
|
||||||
{
|
|
||||||
maxs = max(maxs, i->second);
|
|
||||||
}
|
|
||||||
cout << n - maxs;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user