답안 #782549

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
782549 2023-07-14T04:59:33 Z qwerasdfzxcl 케이크 (JOI13_cake) C++17
0 / 100
1500 ms 262144 KB
#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

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);
      |                         ~~~~~^~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 898 ms 22216 KB Output is correct
2 Runtime error 366 ms 262144 KB Execution killed with signal 9
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1544 ms 45724 KB Time limit exceeded
2 Halted 0 ms 0 KB -