답안 #740448

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
740448 2023-05-12T13:31:34 Z Ahmed57 조교 (CEOI16_popeala) C++14
26 / 100
2000 ms 4236 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];
    memset(dp, 0x3f, sizeof(dp));
    dp[0][0] = 0;
    for(int i = 1;i<=s;i++){
        for(int j = 1;j<=t;j++){
            for(int k = 0;k<=n;k++){
                for(int l = (k==0?0:a[j][k-1]);l<a[j][k];l++){
                    dp[i][j] = min(dp[i][j],dp[i-1][l]+(k*(p[j]-p[l])));
                }
            }
        }
        cout<<dp[i][t]<<"\n";
    }
}
//
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 468 KB Output is correct
2 Correct 12 ms 540 KB Output is correct
3 Correct 12 ms 548 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 160 ms 1284 KB Output is correct
2 Correct 297 ms 1688 KB Output is correct
3 Correct 498 ms 2156 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 12 ms 468 KB Output is correct
4 Correct 12 ms 540 KB Output is correct
5 Correct 12 ms 548 KB Output is correct
6 Correct 160 ms 1284 KB Output is correct
7 Correct 297 ms 1688 KB Output is correct
8 Correct 498 ms 2156 KB Output is correct
9 Correct 1308 ms 3320 KB Output is correct
10 Execution timed out 2068 ms 4236 KB Time limit exceeded
11 Halted 0 ms 0 KB -