Submission #911652

# Submission time Handle Problem Language Result Execution time Memory
911652 2024-01-19T04:27:50 Z anastasiskolio Knapsack (NOI18_knapsack) C++14
37 / 100
1000 ms 19544 KB
#include <bits/stdc++.h>
using namespace std;

int main()
{
  int S, N;
  scanf("%d%d", &S, &N);
  int V[N + 1];
  int W[N + 1];
  int K[N + 1];
  int M = 0;
  for (int i = 1; i <= N; i++)
  {
    scanf("%d%d%d", &V[i], &W[i], &K[i]);
    M += K[i];
  }
  int Weight[M + 1];
  int Value[M + 1];
  int m = 0;
  for (int i = 1; i <= N; i++)
  {
    int j = K[i];
    while (j > 0)
    {
      m++;
      Weight[m] = W[i];
      Value[m] = V[i];
      j--;
    }
  }
  /*int dp[2][S + 1];
  dp[1][0] = 0;
  for (int s = 0; s <= S; s++)
    dp[0][s] = 0;
  for (int i = 1; i <= M; i++)
  {
    for (int s = 1; s <= S; s++)
    {
      if (s - Weight[i] < 0)
        dp[i%2][s] = dp[(i - 1)%2][s];
      else 
        dp[i%2][s] = max(dp[(i - 1)%2][s], dp[(i - 1)%2][s - Weight[i]] + Value[i]);
    }
  }
  printf("%d\n", dp[M%2][S]);*/
  int dp[2][S + 1];
  dp[1][0] = 0;
  for (int s = 0; s <= S; s++)
    dp[0][s] = 0;
  for (int i = 1; i <= M; i++)
  {
    for (int s = 1; s <= S; s++)
    {
      dp[i%2][s] = dp[(i - 1)%2][s];
      if (s - Weight[i] >= 0)
        dp[i%2][s] = max(dp[i%2][s], dp[(i - 1)%2][s - Weight[i]] + Value[i]);
    }
  }
  printf("%d\n", dp[M%2][S]);
  return 0;
}

Compilation message

knapsack.cpp: In function 'int main()':
knapsack.cpp:7:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |   scanf("%d%d", &S, &N);
      |   ~~~~~^~~~~~~~~~~~~~~~
knapsack.cpp:14:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |     scanf("%d%d%d", &V[i], &W[i], &K[i]);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Execution timed out 1027 ms 19544 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 428 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 428 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 2 ms 456 KB Output is correct
13 Correct 1 ms 348 KB Output is correct
14 Correct 1 ms 432 KB Output is correct
15 Correct 1 ms 344 KB Output is correct
16 Correct 2 ms 432 KB Output is correct
17 Correct 1 ms 348 KB Output is correct
18 Correct 1 ms 428 KB Output is correct
19 Correct 1 ms 348 KB Output is correct
20 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1027 ms 19544 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1027 ms 19544 KB Time limit exceeded
2 Halted 0 ms 0 KB -