# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
874889 | 2023-11-18T03:36:16 Z | Sir_Ahmed_Imran | 조교 (CEOI16_popeala) | C++17 | 2000 ms | 5460 KB |
///~~~LOTA~~~/// #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define append push_back #define add insert #define nl '\n' #define ff first #define ss second #define pii pair<int,int> #define pic pair<int,char> #define all(x) (x).begin(),(x).end() #define sum(a) accumulate(all(a),0) #define L0TA ios_base::sync_with_stdio(false);cin.tie(NULL) #define terminator main #define N 20001 int c[N]; int pnt[N]; string a[N]; int dp[51][N]; int pre[51][N]; void solve(){ int n,m,o,p,q,r; cin>>n>>m>>o; for(int i=1;i<=m;i++) cin>>pnt[i]; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) for(int j=0;j<m;j++) pre[i][j+1]=pre[i][j]+a[i][j]-'0'; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) dp[1][i]+=(pre[j][i]==i)*pnt[1]*i; for(int i=2;i<=o;i++){ for(int j=i;j<=m;j++){ dp[i][j]=2e9; for(int k=i-1;k<j;k++){ r=dp[i-1][k]; for(int l=1;l<=n;l++) r+=pnt[i]*(pre[l][j]-pre[l][k]==j-k)*(j-k); dp[i][j]=min(dp[i][j],r); } } } for(int i=1;i<=o;i++) cout<<dp[i][m]<<nl; } int terminator(){ L0TA; solve(); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2648 KB | Output is correct |
2 | Incorrect | 1 ms | 4956 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 290 ms | 5404 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2061 ms | 5460 KB | Time limit exceeded |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 2648 KB | Output is correct |
2 | Incorrect | 1 ms | 4956 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |