답안 #740441

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
740441 2023-05-12T13:20:30 Z Ahmed57 조교 (CEOI16_popeala) C++17
0 / 100
40 ms 1284 KB
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

using namespace std;
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,t,s;cin>>n>>t>>s;
    vector<string>r(n+1);
    int p[t+1] = {0};for(int i = 1;i<=t;i++)cin>>p[i],p[i]+=p[i-1];
    for(int i = 1;i<=n;i++)cin>>r[i];
    int a[t+1][n+1];memset(a,0,sizeof a);
    for(int i = 1;i<=t;i++){
        for(int j = 1;j<=n;j++){
            a[i][j] = (r[j][i-1]=='0'?i:a[i-1][j]);
        }
    }
    for(int i = 1;i<=t;i++){
        a[i][0] = i;
        sort(a[i],a[i]+n+1);
    }
    int dp[s+1][t+1];
    dp[0][0] = 0;
    for(int i = 1;i<=t;i++)dp[0][i] = 1e9;
    for(int i = 1;i<=s;i++){
        dp[i][0] = 1e9;
        for(int j = 1;j<=t;j++){
            dp[i][j] = 1e9;
            for(int k = 0;k<=n;k++){
                int val = 1e9;
                for(int l = a[j-1][k];l<a[j][k];l++){
                    val = min(val,dp[i-1][l]+(k*(p[j]-p[l])));
                }
                dp[i][j] = min(dp[i][j],val);
            }
        }
        cout<<dp[i][t]<<"\n";
    }
}
//
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 8 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 40 ms 1284 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -