提出 #38449716


ソースコード 拡げる

#include <iostream>
#include <queue>
#include <bitset>
#include <vector>
#define N 2100
#define Q 11000
using namespace std;
int n, m, q, s[Q], t[Q], ans[Q];
bitset<N> bt[N];
vector<int> v[N], rev[N];
int main() {
  cin.tie(0)->sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int a, b;
    cin >> a >> b;
    v[a].push_back(b);
    rev[b].push_back(a);
  }
  cin >> q;
  for (int i = 1; i <= q; i++)
    cin >> s[i] >> t[i];
  memset(ans, -1, sizeof(ans));
  for (int i = 1; i <= n; i++) {
    bt[i][i] = 1;
    for (auto to : v[i]) {
      if (to < i)
        bt[i] |= bt[to];
    }
    bitset<N> tmp;
    for (auto to : rev[i]) {
      if (to < i)
        tmp[to] = 1;
    }
    for (int j = 1; j < i; j++) {
      if ((bt[j] & tmp).count())
        bt[j] |= bt[i];
    }
    for (int j = 1; j <= q; j++) {
      if (bt[s[j]][t[j]] && ans[j] == -1) {
        ans[j] = i;
      }
    }
  }
  for (int i = 1; i <= q; i++)
    cout << ans[i] << '\n';
  return 0;
}

提出情報

提出日時
問題 Ex - Directed Graph and Query
ユーザ swiftc
言語 C++ (Clang 10.0.0)
得点 600
コード長 1036 Byte
結果 AC
実行時間 3245 ms
メモリ 38768 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 1
AC × 51
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_srnd_00.txt, 01_srnd_01.txt, 01_srnd_02.txt, 01_srnd_03.txt, 01_srnd_04.txt, 01_srnd_05.txt, 01_srnd_06.txt, 01_srnd_07.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 03_smallM_00.txt, 03_smallM_01.txt, 03_smallM_02.txt, 03_smallM_03.txt, 03_smallM_04.txt, 04_midM_00.txt, 04_midM_01.txt, 04_midM_02.txt, 04_midM_03.txt, 04_midM_04.txt, 05_largeM_00.txt, 05_largeM_01.txt, 05_largeM_02.txt, 05_largeM_03.txt, 05_largeM_04.txt, 06_hand_00.txt, 06_hand_01.txt, 06_hand_02.txt, 06_hand_03.txt, 06_hand_04.txt, 07_dag_00.txt, 07_dag_01.txt, 07_dag_02.txt, 07_dag_03.txt, 07_dag_04.txt, 07_dag_05.txt, 07_dag_06.txt, 07_dag_07.txt, 07_dag_08.txt, 07_dag_09.txt, 08_path_00.txt, 08_path_01.txt, 08_path_02.txt, 08_path_03.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 8 ms 3292 KiB
01_srnd_00.txt AC 2 ms 3248 KiB
01_srnd_01.txt AC 2 ms 3276 KiB
01_srnd_02.txt AC 2 ms 3228 KiB
01_srnd_03.txt AC 2 ms 3328 KiB
01_srnd_04.txt AC 3 ms 3192 KiB
01_srnd_05.txt AC 3 ms 3264 KiB
01_srnd_06.txt AC 4 ms 3296 KiB
01_srnd_07.txt AC 4 ms 3176 KiB
02_rnd_00.txt AC 139 ms 3944 KiB
02_rnd_01.txt AC 172 ms 4256 KiB
02_rnd_02.txt AC 154 ms 3920 KiB
02_rnd_03.txt AC 141 ms 3880 KiB
02_rnd_04.txt AC 184 ms 4444 KiB
02_rnd_05.txt AC 219 ms 4972 KiB
02_rnd_06.txt AC 292 ms 6044 KiB
02_rnd_07.txt AC 257 ms 5788 KiB
03_smallM_00.txt AC 112 ms 3844 KiB
03_smallM_01.txt AC 112 ms 3860 KiB
03_smallM_02.txt AC 112 ms 3868 KiB
03_smallM_03.txt AC 111 ms 3800 KiB
03_smallM_04.txt AC 112 ms 3780 KiB
04_midM_00.txt AC 121 ms 3960 KiB
04_midM_01.txt AC 140 ms 3892 KiB
04_midM_02.txt AC 149 ms 3904 KiB
04_midM_03.txt AC 142 ms 3876 KiB
04_midM_04.txt AC 151 ms 3968 KiB
05_largeM_00.txt AC 3237 ms 38768 KiB
05_largeM_01.txt AC 3242 ms 38660 KiB
05_largeM_02.txt AC 3241 ms 38692 KiB
05_largeM_03.txt AC 3245 ms 38640 KiB
05_largeM_04.txt AC 3243 ms 38628 KiB
06_hand_00.txt AC 114 ms 3916 KiB
06_hand_01.txt AC 3239 ms 38768 KiB
06_hand_02.txt AC 1689 ms 21124 KiB
06_hand_03.txt AC 1706 ms 21408 KiB
06_hand_04.txt AC 1645 ms 20940 KiB
07_dag_00.txt AC 112 ms 3876 KiB
07_dag_01.txt AC 113 ms 3932 KiB
07_dag_02.txt AC 126 ms 3976 KiB
07_dag_03.txt AC 916 ms 15884 KiB
07_dag_04.txt AC 1676 ms 27304 KiB
07_dag_05.txt AC 112 ms 3932 KiB
07_dag_06.txt AC 112 ms 3868 KiB
07_dag_07.txt AC 123 ms 3960 KiB
07_dag_08.txt AC 922 ms 15872 KiB
07_dag_09.txt AC 1697 ms 27288 KiB
08_path_00.txt AC 161 ms 4036 KiB
08_path_01.txt AC 119 ms 4000 KiB
08_path_02.txt AC 112 ms 3996 KiB
08_path_03.txt AC 107 ms 3880 KiB