# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
242633 | 2020-06-28T12:22:19 Z | SamAnd | 지구 온난화 (NOI13_gw) | C++17 | 386 ms | 17364 KB |
#include <bits/stdc++.h> using namespace std; #define m_p make_pair #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define fi first #define se second typedef long long ll; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); mt19937 rnf(2106); const int N = 1000006; int n; int h[N]; int p[N]; int fi(int x) { if (x == p[x]) return x; return p[x] = fi(p[x]); } void kpc(int x, int y) { x = fi(x); y = fi(y); p[x] = y; } int yans; bool c[N]; void solv() { scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d", &h[i]); vector<pair<int, int> > v; for (int i = 0; i < n; ++i) { v.push_back(m_p(h[i], i)); } sort(all(v)); reverse(all(v)); for (int i = 0; i < n; ++i) { p[i] = i; } int ans = 0; for (int ii = 0; ii < n; ++ii) { int x = v[ii].se; c[x] = true; ++yans; if (x - 1 >= 0 && c[x - 1]) { kpc(x, x - 1); --yans; } if (x + 1 < n && c[x + 1]) { kpc(x, x + 1); --yans; } if (ii == n - 1 || v[ii + 1].fi != v[ii].fi) ans = max(ans, yans); } printf("%d\n", ans); } int main() { #ifdef SOMETHING freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); #endif // SOMETHING //ios_base::sync_with_stdio(false), cin.tie(0); solv(); return 0; } //while ((double)clock() / CLOCKS_PER_SEC <= 0.9){}
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
3 | Correct | 5 ms | 384 KB | Output is correct |
4 | Correct | 5 ms | 384 KB | Output is correct |
5 | Correct | 5 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 31 ms | 2156 KB | Output is correct |
2 | Correct | 31 ms | 2420 KB | Output is correct |
3 | Correct | 31 ms | 2412 KB | Output is correct |
4 | Correct | 30 ms | 2420 KB | Output is correct |
5 | Correct | 30 ms | 2352 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 2084 KB | Output is correct |
2 | Correct | 25 ms | 2164 KB | Output is correct |
3 | Correct | 35 ms | 2156 KB | Output is correct |
4 | Correct | 35 ms | 2164 KB | Output is correct |
5 | Correct | 33 ms | 2164 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 335 ms | 17104 KB | Output is correct |
2 | Correct | 348 ms | 17364 KB | Output is correct |
3 | Correct | 386 ms | 17104 KB | Output is correct |
4 | Correct | 342 ms | 17216 KB | Output is correct |
5 | Correct | 326 ms | 17104 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 363 ms | 17104 KB | Output is correct |
2 | Correct | 358 ms | 17104 KB | Output is correct |
3 | Correct | 343 ms | 17232 KB | Output is correct |
4 | Correct | 291 ms | 17204 KB | Output is correct |
5 | Correct | 306 ms | 17104 KB | Output is correct |