제출 #968317

#제출 시각아이디문제언어결과실행 시간메모리
968317berr조교 (CEOI16_popeala)C++17
26 / 100
315 ms262144 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e4+30; short r[N][N]; short gh[57][57]; #define int long long void solve(){ int n, t, s; cin >> n >> t >> s; vector<int> v(t); vector dis(t+2, vector(s+1, (int)1e10)) ; for(auto &i: v) cin >> i; vector<string> se(n); for(auto &i: se){ cin >> i; int k=i[0]-'0'; for(int l=1; l<t; l++){ if(i[l]=='0'){ if(k) for(int j=l-k; j<l; j++){ for(int g=j; g<l; g++){ r[j][g]++; } } k=0; } else k++; } if(k){ for(int j=t-k; j<t; j++){ for(int g=j; g<t; g++){ r[j][g]++; } } } } for(int i=1; i<t; i++) v[i] += v[i-1]; int h=0; for(int i=0; i<55; i++){ for(int l=0; l<55; l++){ gh[i][l]=-1; } } // assert((h < 55*t)); gh[0][0]=0; dis[0][0]=0; auto calc=[&](int ri, int l, int s){ if(dis[l][s]==1e10) return (int)1e10; int h = dis[l][s]; int gh = v[ri]; if(l) gh-=v[l-1]; int kac = r[l][ri]; return h+kac*gh; }; vector<short> upd; for(int i=0; i<=t; i++){ //hah; for(int j=0; j<50; j++){ for(int el=0; el<=50; el++){ if(gh[j][el]!=-1){ if(i!=0) dis[i][j+1] = min(dis[i][j+1], calc(i-1, gh[j][el], j)); } } } for(int l=0; l<n; l++){ if(se[l][i]=='0'){ for(int j=i-1; j>=0; j--){ if(se[l][j]=='0') break; upd.push_back(j); } } } if(i<t) upd.push_back(i); if(i<t) for(auto l: upd){ if(l<0) continue; int el = r[l][i];// kaç tane for(int k=0; k<s; k++){ if(gh[k][el]==-1) gh[k][el]=l; else{ int val_new = calc(i, l, k); int val_old = calc(i, gh[k][el], k); if(val_new < val_old){ gh[k][el] = l; } } } } upd.clear(); } for(int i=1; i<=s; i++) cout<<dis[t][i]<<"\n"; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); /*freopen("popeala.in", "r", stdin); freopen("popeala.out", "w", stdout); */ solve(); }

컴파일 시 표준 에러 (stderr) 메시지

popeala.cpp: In function 'void solve()':
popeala.cpp:46:9: warning: unused variable 'h' [-Wunused-variable]
   46 |     int h=0;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...