답안 #308592

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
308592 2020-10-01T14:53:16 Z shivensinha4 Lightning Conductor (POI11_pio) C++17
0 / 100
37 ms 28288 KB
#include <bits/stdc++.h> 
using namespace std; 
#define for_(i, s, e) for (int i = s; i < (int) e; i++)
#define for__(i, s, e) for (ll i = s; i < e; i++)
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> ii;
#define endl '\n'

const int MXV = 1e6, INF = 1e9;
//int rt[MXV+1];
int pos[MXV+20][3];

//int grt(int p) {
	//for_(i, 0, p+1) {
		//if (i*i >= p) {
			//cout << p << " -> " << i << endl;
			//return i;
		//}
	//}
	//return -1;
//}

int main() {
	#ifdef shiven
	freopen("test.in", "r", stdin);
	#endif
	
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	int n; cin >> n;
	for_(i, 0, MXV+1) {
		pos[i][0] = INF;
		pos[i][1] = -1;
	}
	vi h(n);
	int mx = 0;
	for_(i, 0, n) {
		cin >> h[i];
		mx = max(mx, h[i]);
		//if (!pos[h[i]].size()) pos[h[i]] = {i, i};
		assert(h[i] <= MXV);
		pos[h[i]][0] = min(pos[h[i]][0], i);
		pos[h[i]][1] = max(pos[h[i]][1], i);
	}
	
	//int r = 0, sq = 0;
	//for_(i, 0, mx+1) {
		//rt[i] = r;
		//if (i == sq) {
			//r += 1;
			//sq = r*r;
		//}
	//}
	
	//vi poss;
	//for (int i = mx; i >= max(mx-710, 0); i--) if (pos[i].size()) {
		 //poss.push_back(i);
	//}
	
	for_(i, 0, n) {
		int ans = h[i];
		//for (int v = mx; v >= max(mx-710, 0); v--) if (pos[v][0] != INF) ans = max({ans, v + rt[abs(pos[v][0] - i)], v + rt[abs(pos[v][1] - i)]});
		//for (int v = mx; v >= max(mx-710, 0); v--) if (pos[v][0] != INF) ans = max({ans, v + grt(abs(pos[v][0] - i)), v + grt(abs(pos[v][1] - i))});
		//for (int v = mx; v >= max(mx-710, 0); v--) if (pos[v][0] != INF) ans = max(ans, 10);
		cout << ans-h[i] << endl;
	}
	

	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 8 ms 12032 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 12032 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 12032 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 29 ms 24568 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# 결과 실행 시간 메모리 Grader output
1 Runtime error 31 ms 24704 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# 결과 실행 시간 메모리 Grader output
1 Runtime error 36 ms 24832 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 30 ms 25080 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 27 ms 26116 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 32 ms 27128 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 33 ms 28288 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 37 ms 28280 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -