답안 #391861

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
391861 2021-04-20T04:05:12 Z Kevin_Zhang_TW 케이크 (CEOI14_cake) C++17
15 / 100
2000 ms 1680 KB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
using ll = long long;
#define pb emplace_back
#define AI(i) begin(i), end(i)
template<class T> bool chmin(T &a, T b) { return b < a && (a = b, true); }
template<class T> bool chmax(T &a, T b) { return a < b && (a = b, true); }
#ifdef KEV
#define DE(args...) kout("[ " + string(#args) + " ] = ", args)
void kout() { cerr << endl; }
template<class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ', kout(b...); }
template<class T> void debug(T l, T r) { while (l != r) cerr << *l << " \n"[next(l)==r], ++l; }
#else
#define DE(...) 0
#define debug(...) 0
#endif

const int MAX_N = 300010, inf = 1e9;
int n, sep;

int val[MAX_N];

int32_t main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	cin >> n >> sep;
	for (int i = 1;i <= n;++i)
		cin >> val[i];

	int q;
	cin >> q;
	while (q--) {
		char op;
		cin >> op;
		if (op == 'E') {
			int ind, e;
			cin >> ind >> e;
			int nv = n - e + 1;
			for (int i = 1;i <= n;++i)
				if (val[i] > val[ind] && val[i] <= nv)
					--val[i];
			val[ind] = nv;
			debug(val+1, val+1+n);
		}
		else {
			int b;
			cin >> b;
			//DE(b);
			int res = 0;
			if (b < sep) {
				for (int l = sep - 1, r = sep + 1;l >= b;--l) {
					while (r <= n && val[r] < val[l]) ++r, ++res;
					++res;
				}
			}
			if (b > sep) {
				for (int l = sep - 1, r = sep + 1;r <= b;++r) {
					while (l >= 1 && val[l] < val[r]) --l, ++res;
					++res;
				}
			}
			cout << res << '\n';
		}
	}
}

Compilation message

cake.cpp: In function 'int32_t main()':
cake.cpp:16:20: warning: statement has no effect [-Wunused-value]
   16 | #define debug(...) 0
      |                    ^
cake.cpp:43:4: note: in expansion of macro 'debug'
   43 |    debug(val+1, val+1+n);
      |    ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 11 ms 340 KB Output is correct
5 Correct 207 ms 368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2078 ms 332 KB Time limit exceeded
2 Execution timed out 2067 ms 332 KB Time limit exceeded
3 Execution timed out 2085 ms 332 KB Time limit exceeded
4 Execution timed out 2084 ms 332 KB Time limit exceeded
5 Execution timed out 2083 ms 332 KB Time limit exceeded
6 Execution timed out 2079 ms 332 KB Time limit exceeded
7 Execution timed out 2075 ms 332 KB Time limit exceeded
8 Execution timed out 2037 ms 456 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2069 ms 1068 KB Time limit exceeded
2 Execution timed out 2031 ms 1080 KB Time limit exceeded
3 Correct 1731 ms 1032 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Execution timed out 2082 ms 1388 KB Time limit exceeded
6 Execution timed out 2096 ms 1396 KB Time limit exceeded
7 Execution timed out 2055 ms 1680 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Correct 299 ms 368 KB Output is correct
2 Correct 504 ms 600 KB Output is correct
3 Execution timed out 2068 ms 788 KB Time limit exceeded
4 Execution timed out 2079 ms 792 KB Time limit exceeded
5 Correct 598 ms 604 KB Output is correct
6 Execution timed out 2071 ms 704 KB Time limit exceeded
7 Execution timed out 2076 ms 704 KB Time limit exceeded
8 Execution timed out 2076 ms 588 KB Time limit exceeded
9 Execution timed out 2076 ms 1288 KB Time limit exceeded
10 Correct 1996 ms 1468 KB Output is correct
11 Execution timed out 2081 ms 684 KB Time limit exceeded
12 Execution timed out 2074 ms 1100 KB Time limit exceeded
13 Execution timed out 2078 ms 1420 KB Time limit exceeded