제출 #950135

#제출 시각아이디문제언어결과실행 시간메모리
950135vjudge13단 점프 (JOI19_jumps)C++17
19 / 100
330 ms105976 KiB
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")

#include<bits/stdc++.h>	

using namespace std;

#define all(a) a.begin(), a.end()                                                   
#define rall(a) a.rbegin(), a.rend()                 
#define sz(a) (int)a.size()
#define s second
#define f first
 
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
     
vector<pii> rid = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
vector<pii> dir = {{-1, -1}, {-1, 1}, {1, -1}, {1, 1}};
 
const int N = 2e5 + 1, mod = 1e9 + 7;

const ll inf = 1e9;
 
double eps = 1e-15;
                                                
bool flg = 0;

void slave(int n) {
	int a[n + 1];
	for (int i = 1; i <= n; i++) cin >> a[i];
	int dp[n + 1][n + 1];
	for (int i = 0; i <= n; i++) {
		for (int j = 0; j <= n; j++) {
			dp[i][j] = 0;
		}
	}
	for (int l = 1; l <= n; l++) {
		int p = l + 1, mx = 0;
		for (int r = l + 2; r <= n; r++) {
		 	while (p <= (r + l) / 2) {
		 		mx = max(mx, a[p]);
		 		p++;
		 	}
		 	dp[l][r] = a[l] + mx + a[r];
		}
	}
	for (int len = 3; len <= n; len++) {
		for (int l = 1; l <= n - len + 1; l++) {
			int r = l + len - 1;
			dp[l][r] = max({dp[l][r], dp[l + 1][r], dp[l][r - 1]});
		}
	}
	int q;
	cin >> q;
	while (q--) {
		int l, r;
		cin >> l >> r;
		cout << dp[l][r] << '\n';
	}
}

void slv() {
	int n;
	cin >> n;
	if (n <= 5000) {
		slave(n);
		return;
	}
	int a[n + 1];
	for (int i = 1; i <= n; i++) cin >> a[i];
	int q;
	cin >> q;
	while (q--) {
		int l, r;
		cin >> l >> r;
		 
	}
}                                                                           
 
main() {
	//freopen("rsq.in", "r", stdin);                                                                                     
	//freopen("rsq.out", "w", stdout);                                                                                     
	ios_base::sync_with_stdio(0);	                                                                                       
	cin.tie(0);
	int tp = 1;
	if (flg) cin >> tp;
	while (tp--) {  	
		slv();
	}
}
//wenomechainsama                                              

컴파일 시 표준 에러 (stderr) 메시지

jumps.cpp:83:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   83 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...