Submission #874915

#TimeUsernameProblemLanguageResultExecution timeMemory
874915Faisal_SaqibPopeala (CEOI16_popeala)C++17
17 / 100
203 ms262144 KiB
#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #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]; inline int read() { char c = getchar(); int x = 0, s = 1; while (c < '0' || c > '9') { if (c == '-') s = -1; c = getchar(); } while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar(); } return x * s; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); n=read(); t=read(); s=read(); // scanf("%d %d %d",&n,&t,&s); for(int i=0;i<t;i++) { points=read(); // 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 (stderr)

popeala.cpp: In function 'int main()':
popeala.cpp:47:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   47 |         scanf("%s",results);
      |         ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...