Submission #65790446


Source Code Expand

// 綺麗に解きなおし

#include <bits/stdc++.h>
using namespace std;

/////////////////// メイン ///////////////////

int main () {
  
  //////////////////// 入力 ////////////////////

  int n, m;
  cin >> n >> m;

  // サイズが不揃いな二次元配列を受け取る
  vector<vector<int>> a(m);
  for (int i=0; i<m; i++) {
    int num;
    cin >> num;
    a.at(i).resize(num);
    for (int j=0; j<num; j++) {
      cin >> a.at(i).at(j);
    }
  }

  // Bの方は、逆写像で受け取る
  // すなわち、各食材が何日目に食べられるようになるかを入れる
  // 食材0はデータが来ないが、あって害になるわけでもないので適当に-1で埋めておく
  // また、食材nを受け取れるよう、sizeはn+1としておく。
  vector<int> b_inverse(n+1,-1);
  for (int i=0; i<n; i++) {
    int tmp;
    cin >> tmp;
    b_inverse.at(tmp) = i;
  }

  //////////////// 出力変数定義 ////////////////

  // 一旦「その日に食べられるようになる料理数」を格納
  // 最後に累積和を取って「その日【までに】食べられるようになる料理数」にして出力する
  vector<int> result(n,0);

  //////////////////// 処理 ////////////////////

  // 各料理について、何日目に食べられるようになるかを計算し、resultに反映
  for (const vector<int>& dish : a) {
    int day = -1;
    for (int ingredient : dish) {
      day = max(day,b_inverse.at(ingredient));
    }
    result.at(day)++;
  }

  // 予定通り累積和を取る
  for (int i=0; i<n-1; i++) {
    result.at(i+1) += result.at(i);
  }

  //////////////////// 出力 ////////////////////

  for (size_t i=0; i<result.size(); i++) {
    cout << result.at(i) << endl;
  }

  //////////////////// 終了 ////////////////////

  return 0;

}

Submission Info

Submission Time
Task C - Dislike Foods
User wightou
Language C++ 23 (gcc 12.2)
Score 300
Code Size 1906 Byte
Status AC
Exec Time 425 ms
Memory 21824 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 33
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3440 KiB
00_sample_01.txt AC 1 ms 3540 KiB
01_test_00.txt AC 38 ms 4828 KiB
01_test_01.txt AC 16 ms 4008 KiB
01_test_02.txt AC 9 ms 3700 KiB
01_test_03.txt AC 4 ms 3664 KiB
01_test_04.txt AC 12 ms 3880 KiB
01_test_05.txt AC 5 ms 3704 KiB
01_test_06.txt AC 370 ms 7392 KiB
01_test_07.txt AC 49 ms 8428 KiB
01_test_08.txt AC 357 ms 7640 KiB
01_test_09.txt AC 285 ms 7392 KiB
01_test_10.txt AC 353 ms 6804 KiB
01_test_11.txt AC 328 ms 12344 KiB
01_test_12.txt AC 368 ms 9696 KiB
01_test_13.txt AC 68 ms 7276 KiB
01_test_14.txt AC 376 ms 7572 KiB
01_test_15.txt AC 109 ms 6120 KiB
01_test_16.txt AC 411 ms 20236 KiB
01_test_17.txt AC 82 ms 10272 KiB
01_test_18.txt AC 392 ms 10536 KiB
01_test_19.txt AC 247 ms 15796 KiB
01_test_20.txt AC 413 ms 21824 KiB
01_test_21.txt AC 424 ms 21800 KiB
01_test_22.txt AC 425 ms 21824 KiB
01_test_23.txt AC 422 ms 21820 KiB
01_test_24.txt AC 33 ms 6004 KiB
01_test_25.txt AC 47 ms 4736 KiB
01_test_26.txt AC 46 ms 11356 KiB
01_test_27.txt AC 40 ms 8860 KiB
01_test_28.txt AC 38 ms 4636 KiB
01_test_29.txt AC 47 ms 11328 KiB
01_test_30.txt AC 1 ms 3524 KiB