Submission #1152907

#TimeUsernameProblemLanguageResultExecution timeMemory
1152907AgentPenginCollecting Stamps 3 (JOI20_ho_t3)C++20
100 / 100
92 ms135292 KiB
/** * author: AgentPengin ( Độc cô cầu bại ) * created: 23.12.2022 10:08:02 * too lazy to update time **/ #include<bits/stdc++.h> #define EL '\n' #define fi first #define se second #define NAME "TASK" #define ll long long #define lcm(a,b) (a/gcd(a,b))*b #define db(val) "["#val" = " << (val) << "] " #define bend(v) (v).begin(),(v).end() #define sz(v) (int)(v).size() #define ex exit(0) #define int ll using namespace std; const ll mod = 1e9 + 7; const int inf = 0x1FFFFFFF; const int MAXN = 205; int n, L, x[MAXN], t[MAXN]; int dp[MAXN][MAXN][MAXN][2]; void ckmin(int &a, int b) { a = min(a, b); } signed main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); if (ifstream(NAME".inp")) { freopen(NAME".inp","r",stdin); freopen(NAME".out","w",stdout); } cin >> n >> L; memset(dp, 0x3f, sizeof dp); for (int i = 1;i <= n;i++) { cin >> x[i]; } for (int i = 1;i <= n;i++) { cin >> t[i]; } x[n + 1] = L; dp[0][n + 1][0][0] = dp[0][n + 1][0][1] = 0; for (int i = 0;i <= n;i++) { for (int j = n + 1;j > i;j--) { for (int score = 0; score <= (i + (n - j + 1)); score++) { if (dp[i][j][score][1] < 1e18) { if (j - 1 > i) { int time = dp[i][j][score][1] + (x[j] - x[j - 1]); ckmin(dp[i][j - 1][score + (time <= t[j - 1])][1], time); } if (i + 1 < j) { int time = dp[i][j][score][1] + (L - x[j] + x[i + 1]); ckmin(dp[i + 1][j][score + (time <= t[i + 1])][0], time); } } if (dp[i][j][score][0] < 1e18) { if (j - 1 > i) { int time = dp[i][j][score][0] + x[i] + L - x[j - 1]; ckmin(dp[i][j - 1][score + (time <= t[j - 1])][1], time); } if (i + 1 < j) { int time = dp[i][j][score][0] + x[i + 1] - x[i]; ckmin(dp[i + 1][j][score + (time <= t[i + 1])][0], time); } } } } } int res = 0; for (int i = 0;i <= n;i++) { for (int j = n + 1;j > i;j--) { for (int score = 0;score <= n;score++) { for (int pos = 0;pos < 2;pos++) { if (dp[i][j][score][pos] < 1e18) { if (res < score) res = score; } } } } } cout << res; cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n"; return 0; } // agent pengin wants to take apio (with anya-san)

Compilation message (stderr)

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