Submission #1697788


Source Code Expand

#include <assert.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <algorithm>
#include <numeric>
#include <functional>
#include <iostream>
#include <string>
#include <array>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <bitset>
typedef long long ll;
typedef unsigned long long ull;

#define REP(i, n) for (int i = 0; i < n; i++)
#define REPR(i, n) for (int i = n; i >= 0; i--)

using namespace std;

// 座標圧縮
template <typename T>
struct Compressor {
  map<T, int> compressor;
  vector<T> extractor;

  explicit Compressor(vector<T> originals) {
    sort(originals.begin(), originals.end());
    originals.erase(unique(originals.begin(), originals.end()),
                    originals.end());

    extractor = vector<T>(originals.size(), 0);
    for (int i = 0; i < originals.size(); i++) {
      compressor[originals[i]] = i;
      extractor[i] = originals[i];
    }
  }
  int size() {
    return compressor.size();
  }
  int compress(T value) {
    return compressor[value];
  }
  vector<int> compress(const vector<T> &values) {
    // <int> を返したいので for_each は使えない
    vector<int> results(values.size());
    for (int i = 0; i < values.size(); i++) {
      results[i] = compress(values[i]);
    }
    return results;
  }
  T extract(int index) {
    return extractor[index];
  }
};

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);

  int NA, NB;
  cin >> NA >> NB;

  vector<int> A(NA, 0);
  vector<int> B(NB, 0);
  vector<int> all(NA + NB, 0);

  REP(i, NA) {
    cin >> A[i];
    all[i] = A[i];
  }
  REP(i, NB) {
    cin >> B[i];
    all[NA + i] = B[i];
  }

  Compressor<int> c(all);
  vector<int> ca = c.compress(A);
  vector<int> cb = c.compress(B);
  vector<bool> ia(c.size(), false);
  vector<bool> ib(c.size(), false);
  for (auto i : ca) {
    ia[i] = true;
  }
  for (auto i : cb) {
    ib[i] = true;
  }
  int x = 0;
  int y = 0;
  REP(i, c.size()) {
    if (ia[i] && ib[i]) {
      x++;
    }
    y++;
  }
  printf("%.10f\n", 1.0 * x / y);
  return 0;
}

Submission Info

Submission Time
Task B - メタ構文変数
User sinhrks
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2236 Byte
Status AC
Exec Time 160 ms
Memory 12800 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 40 / 40 30 / 30 30 / 30
Status
AC × 2
AC × 11
AC × 19
AC × 28
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt
Subtask2 sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt
Subtask3 sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
subtask1_01.txt AC 4 ms 384 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 2 ms 384 KB
subtask1_04.txt AC 2 ms 384 KB
subtask1_05.txt AC 2 ms 384 KB
subtask1_06.txt AC 2 ms 384 KB
subtask1_07.txt AC 2 ms 384 KB
subtask1_08.txt AC 2 ms 384 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 2 ms 384 KB
subtask2_01.txt AC 49 ms 4608 KB
subtask2_02.txt AC 109 ms 7680 KB
subtask2_03.txt AC 42 ms 3500 KB
subtask2_04.txt AC 109 ms 7680 KB
subtask2_05.txt AC 28 ms 3268 KB
subtask2_06.txt AC 66 ms 6528 KB
subtask2_07.txt AC 88 ms 6932 KB
subtask2_08.txt AC 113 ms 7680 KB
subtask3_01.txt AC 93 ms 8208 KB
subtask3_02.txt AC 160 ms 12800 KB
subtask3_03.txt AC 26 ms 2344 KB
subtask3_04.txt AC 116 ms 7680 KB
subtask3_05.txt AC 85 ms 7488 KB
subtask3_06.txt AC 157 ms 12800 KB
subtask3_07.txt AC 94 ms 8192 KB
subtask3_08.txt AC 128 ms 9728 KB