답안 #702181

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
702181 2023-02-23T07:44:35 Z mychecksedad Money (IZhO17_money) C++17
0 / 100
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

money.cpp: In function 'void solve()':
money.cpp:29:9: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   29 |       if(!er.empty()) if(er.back() != a[i]) er.pb(a[i]);
      |         ^
money.cpp: In function 'int main()':
money.cpp:60:14: warning: unused variable 'aa' [-Wunused-variable]
   60 |   int T = 1, aa;
      |              ^~
# 결과 실행 시간 메모리 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 -