# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
702183 | 2023-02-23T07:47:18 Z | mychecksedad | Money (IZhO17_money) | C++17 | 2 ms | 4308 KB |
/* Author : Mychecksdead */ #include<bits/stdc++.h> using namespace std; typedef long long int ll; #define MOD (1000000000+7) #define MOD1 (998244353) #define PI 3.1415926535 #define pb push_back #define all(x) x.begin(), x.end() const int N = 1e6+100, M = 1e5+10, K = 20; int n, a[N], ans; set<int> s; vector<int> c; vector<bool> rem; void solve(){ cin >> n; c.resize(N); rem.resize(N); for(int i = 0; i < n; ++i) cin >> a[i]; for(int i = 0; i < n; ++i) s.insert(a[i]), c[a[i]]++; ans = 0; for(int i = n - 1; i >= 0; --i){ auto it = s.find(a[i]); ans++; vector<int> er; while(*it == a[i]){ if(!er.empty()) if(er.back() != a[i]) er.pb(a[i]); else er.pb(a[i]); c[a[i]]--; --i; if(i == -1) break; if(c[a[i + 1]] > 0){ if(a[i] != a[i + 1]){ if(er[0] == a[i + 1]){ if(it == s.begin()) break; --it; } else break; } }else{ if(it == s.begin()) break; --it; } } for(int u: er){ if(c[u] == 0 && !rem[u]) s.erase(u), rem[u] = 1; } ++i; } cout << ans; } int main(){ cin.tie(0); ios::sync_with_stdio(0); int T = 1, aa; // cin >> T;aa=T; while(T--){ // cout << "Case #" << aa-T << ": "; solve(); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 4308 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 4308 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 4308 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 4308 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |