답안 #668393

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
668393 2022-12-03T19:04:31 Z 600Mihnea Journey (NOI18_journey) C++17
100 / 100
189 ms 5188 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++)
  {
    for (int j = 0; j < h; j++)
    {
      int nxt, stay;
      cin >> nxt >> stay;
      if (nxt > i)
      {
        g[i].push_back({nxt, stay});
      }
    }
  }

  vector<vector<int>> dp(n, vector<int> (m + 1, 0));
  dp[0][0] = 1;
  dp[0][1] = -1;
  for (int i = 0; i < n; i++)
  {
    for (int cur = 0; cur <= m; cur++)
    {
      if (cur - 1 >= 0)
      {
        addup(dp[i][cur], dp[i][cur - 1]);
      }
      for (auto &it : g[i])
      {
        if (cur + it.stay <= m)
        {
          addup(dp[it.nxt][cur + it.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 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 2 ms 340 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 2 ms 340 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 50 ms 3380 KB Output is correct
8 Correct 82 ms 5188 KB Output is correct
9 Correct 28 ms 1888 KB Output is correct
10 Correct 189 ms 2952 KB Output is correct