Submission #782547

#TimeUsernameProblemLanguageResultExecution timeMemory
782547qwerasdfzxcl케이크 (JOI13_cake)C++17
0 / 100
412 ms262144 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; map<int, ll> mp[300300]; int n, a[300300]; ll dfs(int l, int r, int typ = 0){ if (mp[l].find(r)!=mp[l].end()) return mp[l][r]; ll &ret = mp[l][r]; if (l==r){ if (typ) return ret = a[l]; return ret = 0; } if (a[l] > a[r]){ int nl = l+1; if (nl > n) nl = 1; return ret = ((typ)?a[l]:0) + dfs(nl, r, typ^1); } int nr = r-1; if (nr < 1) nr = n; return ret = ((typ)?a[r]:0) + dfs(l, nr, typ^1); } int main(){ scanf("%d", &n); for (int i=1;i<=n;i++) scanf("%d", a+i); for (int i=1;i<=n;i++){ int l = i+1, r = i-1; if (l>n) l = 1; if (r<1) r = n; printf("%lld\n", a[i] + dfs(l, r, 0)); } }

Compilation message (stderr)

cake.cpp: In function 'int main()':
cake.cpp:30:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
cake.cpp:31:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |  for (int i=1;i<=n;i++) scanf("%d", a+i);
      |                         ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...