답안 #668389

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
668389 2022-12-03T19:01:03 Z 600Mihnea Journey (NOI18_journey) C++17
20 / 100
1 ms 320 KB
#include <bits/stdc++.h>


using namespace std;

const int INF = 500000001;

struct T
{
  int nxt;
  int stay;
};

void addup(int &a, int b)
{
  a = min(INF, a + b);
}

int main()
{
#ifdef ONPC
  freopen ("input.txt", "r", stdin);
#endif // ONPC

#ifndef ONPC
  ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#endif // ONPC

  int n, m, h;
  cin >> n >> m >> h;
  vector<vector<T>> g(n);
  vector<int> sol(m);

  for (int i = 0; i < n - 1; i++)
  {
    g[i].resize(h);
    for (int j = 0; j < h; j++)
    {
      cin >> g[i][j].nxt >> g[i][j].stay;
    }
  }

  vector<vector<int>> dp(n, vector<int> (m, 0));
  dp[0][0] = 1;
  for (int i = 0; i < n; i++)
  {
    for (int cur = 0; cur <= m; cur++)
    {
      for (auto &it : g[i])
      {
        for (int stay = it.stay; cur + stay < m; stay++)
        {
          addup(dp[it.nxt][cur + stay], dp[i][cur]);
        }
      }
    }
  }

  for (int i = 0; i < m; i++)
  {
    cout << dp[n - 1][i] << " ";
  }
  cout << "\n";

  return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 320 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 1 ms 320 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Incorrect 1 ms 320 KB Output isn't correct
4 Halted 0 ms 0 KB -