Submission #1101317

#TimeUsernameProblemLanguageResultExecution timeMemory
1101317SunbaeCopy and Paste 3 (JOI22_copypaste3)C++17
0 / 100
2203 ms152048 KiB
#include <bits/stdc++.h> #define z exit(0) typedef long long ll; using namespace std; const int N = 2555; const ll inf = 1e18; char s[N]; ll dp[10001][10001]; int A, B, C, n, vis[10001][10001]; signed main(){ scanf("%d %s %d %d %d", &n, s, &A, &B, &C); for(int i = 0; i<=n; ++i) fill(dp[i], dp[i]+10001, inf); using T = tuple<ll,int,int>; priority_queue<T, vector<T>, greater<T>> pq; pq.emplace(dp[0][0] = 0, 0, 0); while(!pq.empty()){ ll dis; int i, j; tie(dis, i, j) = pq.top(); pq.pop(); if(vis[i][j]) continue; //vis[i][j] = 1; if(dp[i][j] >= inf) continue; if(i+1 <= 1e4 && dp[i+1][j] > dp[i][j] + A) pq.emplace(dp[i+1][j] = dp[i][j] + A, i+1, j); if(i+j <= 1e4 && dp[0][i+j] > dp[i][j] + B) pq.emplace(dp[0][i+j] = dp[i][j] + B, 0, i+j); if(i+j <= 1e4 && dp[i+j][j] > dp[i][j] + C) pq.emplace(dp[i+j][j] = dp[i][j] + C, i+j, j); } printf("%lld", *min_element(dp[n], dp[n]+10001)); }

Compilation message (stderr)

copypaste3.cpp: In function 'int main()':
copypaste3.cpp:11:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     scanf("%d %s %d %d %d", &n, s, &A, &B, &C);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching 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...
#Verdict Execution timeMemoryGrader output
Fetching results...