diff options
Diffstat (limited to 'exp_3.cpp')
| -rw-r--r-- | exp_3.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/exp_3.cpp b/exp_3.cpp new file mode 100644 index 0000000..4e6f8b0 --- /dev/null +++ b/exp_3.cpp @@ -0,0 +1,54 @@ +#include <algorithm> +#include <cassert> +#include <cstdio> +#include <set> +#include <vector> + +constexpr size_t length = 1048576; + +int main() { + + std::vector<long long> vector1, vector2; + + std::set<long long> set1, set2; + + FILE *file = fopen("normal_distribution.txt", "r"); + for (long long i; fscanf(file, "%lld ", &i) != EOF; + vector1.push_back(i), set1.insert(i)) + ; + fclose(file); + + assert(vector1.size() == set1.size()); + assert(vector1.size() == length); + + auto it = vector1.begin(); + for (int i = 1; i <= 1000; i++) { + auto element = *it; + auto ret = set2.insert(element); + if (ret.second) { + vector2.push_back(element); + // printf("%lld\n", element); + } + it++; + } + + assert(vector2.size() == 1000); + + auto it2 = set2.begin(); + int cnt = 0; + for (long long it1 : set1) { + while (it1 > *it2 && it2 != set2.end()) + it2++, cnt++; + // printf("%d ", cnt); + } + + it2 = set1.begin(); + cnt = 0; + for (long long it1 : set2) { + while (it1 > *it2 && it2 != set1.end()) + it2++, cnt++; + printf("%d ", cnt); + } + puts(""); + return 0; +}
\ No newline at end of file |
