답안 #874910

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
874910 2023-11-18T05:27:12 Z Faisal_Saqib 조교 (CEOI16_popeala) C++17
0 / 100
187 ms 172636 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=0;i<=t;i++)
        dp[i][0]=inf;
    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++)
            {
                zeros[i+1][new_i]+=zeros[i][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 2396 KB Output is correct
2 Incorrect 2 ms 4444 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 14 ms 41308 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 187 ms 172636 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2396 KB Output is correct
2 Incorrect 2 ms 4444 KB Output isn't correct
3 Halted 0 ms 0 KB -