답안 #874912

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
874912 2023-11-18T05:29:24 Z Faisal_Saqib 조교 (CEOI16_popeala) C++17
17 / 100
302 ms 262144 KB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int T=2e4+1;
const int N=51;
const int inf=2e9;
int points,n,t,s;
int pre[T];
int zero[N];
int zeros[T][T];
int dp[T][2];
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    scanf("%d %d %d",&n,&t,&s);
    for(int i=0;i<t;i++)
    {
        scanf("%d",&points);
        pre[i+1]=pre[i]+points;
    }
    char results[t];
    for(int i=0;i<n;i++)
    {
        scanf("%s",results);
        for(int r=1;r<=t;r++)
        {
            if(results[r-1]=='0')
                zero[i]=r;
            else
                zeros[zero[i]+1][r]+=1;
        }
    }
    for(int i=1;i<=t;i++)
    {
        dp[i][0]=inf;
        for(int j=1;j<=i;j++)
            zeros[j][i]+=zeros[j-1][i];
    }
    dp[0][0]=0;
    for(int j=0;j<s;j++)
    {
        for(int i=0;i<=t;i++)
            dp[i][(j+1)%2]=inf;
        for(int i=0;i<t;i++)
        {
            if(dp[i][j%2]==inf)
                continue;
            for(int new_i=i+1;new_i<=t;new_i++)
                dp[new_i][(j+1)%2]=min(dp[new_i][(j+1)%2],dp[i][j%2]+(pre[new_i]-pre[i])*zeros[i+1][new_i]);
        }
        printf("%d\n",dp[t][(j+1)%2]);
    }
    return 0;
}

Compilation message

popeala.cpp: In function 'int main()':
popeala.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf("%d %d %d",&n,&t,&s);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~
popeala.cpp:21:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |         scanf("%d",&points);
      |         ~~~~~^~~~~~~~~~~~~~
popeala.cpp:27:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         scanf("%s",results);
      |         ~~~~~^~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 41520 KB Output is correct
2 Correct 11 ms 41304 KB Output is correct
3 Correct 11 ms 41308 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 165 ms 172624 KB Output is correct
2 Correct 302 ms 236376 KB Output is correct
3 Runtime error 35 ms 262144 KB Execution killed with signal 9
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
3 Correct 12 ms 41520 KB Output is correct
4 Correct 11 ms 41304 KB Output is correct
5 Correct 11 ms 41308 KB Output is correct
6 Correct 165 ms 172624 KB Output is correct
7 Correct 302 ms 236376 KB Output is correct
8 Runtime error 35 ms 262144 KB Execution killed with signal 9
9 Halted 0 ms 0 KB -