Submission #1265059

#TimeUsernameProblemLanguageResultExecution timeMemory
1265059lmaobruhSemiexpress (JOI17_semiexpress)C++20
48 / 100
62 ms109300 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define eb emplace_back #define pb push_back #define fi first #define se second #define ii pair<int,int> #define ve vector #define all(x) x.begin(), x.end() #define fo(i,a,b) for (int i=(a),_b=(b); i<=_b; ++i) #define fd(i,a,b) for (int i=(a),_b=(b); i>=_b; --i) #define maxi(a, b) a = max(a, b) #define mini(a, b) a = min(a, b) const int N = 1e6+5, inf = 1e9+10, mod = 1e9+7; /* n <= 300 : f[i][j][k] : so luong max neu den i co j chuyen, va chuyen gan nhat la k opt[i][j] : minimum time den i neu co mot trem semi o j ex[i][j] : minimum time tu i den j chi dung local va express E < S < L */ bool st_mem; int n, m, c, f[303][303][303], lst[303], s[303]; ll L, E, S, T, d[303]; bool ie[N]; void build() { fo(i,1,n) { lst[i]=(ie[i]?i:lst[i-1]); d[i]=E*(lst[i]-1)+S*(i-lst[i]); } } void dp() { memset(f,-0x3f,sizeof(f)); f[1][1][1]=0; int res = 0; fo(i,1,n-1) fo(j,1,min(i,c)) fo(k,0,i) if (f[i][j][k]>=0) { maxi(f[i+1][j+1][i+1],f[i][j][k]+(d[i+1]<=T)); if (!ie[i+1]) maxi(f[i+1][j][k],f[i][j][k]+(d[k]+L*(i+1-k)<=T)); } fo(i,0,n) maxi(res, f[n][c][i]); cout << res; } void sol() { cin >> n >> m >> c >> L >> E >> S >> T; fo(i,1,m) cin >> s[i], ie[s[i]]=1; build(); dp(); } bool en_mem; signed main(){ ios::sync_with_stdio(0); cin.tie(0); if(fopen("A.inp","r")) { freopen("A.inp","r",stdin); freopen("A.out","w",stdout); } int tc = 1; // cin >> tc; fo(i,1,tc) sol(); cerr << abs(&st_mem - &en_mem) / 1024.0 / 1024.0; return 0; }

Compilation message (stderr)

semiexpress.cpp: In function 'int main()':
semiexpress.cpp:63:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |         freopen("A.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~
semiexpress.cpp:64:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   64 |         freopen("A.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...