# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
869968 | MercubytheFirst | Baloni (COCI15_baloni) | C++17 | 3 ms | 604 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*
*/
#include<iostream>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<map>
#include<set>
#include<climits>
#include<numeric>
#include<queue>
#include<unordered_map>
#include<string>
#include<climits>
#include<unordered_set>
#include<bitset>
#include<cstring>
#include<cmath>
#include<stack>
#include<tuple>
#include<complex>
#if 1
#define pb push_back
#define endl '\n'
#define fi first
#define se second
#define fio ios_base::sync_with_stdio(false);cin.tie(NULL);
#define CDIV(a,b) (((a)+(b)-(1))/(b))
using namespace std;
using ll = long long;
using ld = long double;
const ll inf = 1e9 + 5;
const ll mod = 998244353;
const ll N = 1e6 + 4;
const ld PI = acos((ld)-1);
#endif
void fileio(string s = "test"){
#ifndef ONLINE_JUDGE
freopen((s+string(".in")).c_str(),"r",stdin);
freopen((s+string(".out")).c_str(),"w",stdout);
#endif
}
ll bpow(ll a, ll p)
{
if(a == 0 or a == 1)return a;
ll ans = 1;
while(p)
{
if(p&1)ans = ans * a % mod;
a = a * a % mod;
p >>= 1;
}
return ans;
}
ll add(ll a, ll b){
if(a + b >= mod)
return a + b - mod;
return a + b;
}
ll sub(ll a, ll b){
if(a - b >= 0)
return a - b;
return a - b + mod;
}
ll mul(ll a, ll b){
return (a%mod)*(b%mod)%mod;
}
ll digitSum(ll n){
ll sum = 0;
while(n){
sum += n % 10;
n /= 10;
}
return sum;
}
inline void solve(){
int n;
cin >> n;
int v[n + 1];
vector<int> keep[n + 1];
for(int i = 1; i <= n; ++i){
cin >> v[i];
keep[v[i]].pb(i);
}
for(int i = 1; i <= n; ++i){
if(keep[i].size() >= 2)
reverse(keep[i].begin(), keep[i].end());
}
int ans = 0;
for(int i = 1; i <= n; ++i){
if(v[i] == -1)
continue;
int cur = v[i];
ans++;
while(cur >= 1 and !keep[cur].empty()){
v[keep[cur].back()] = -1;
keep[cur].pop_back();
cur--;
}
}
cout << ans << endl;
}
signed main(){
fileio();
fio;
// int t = 0;cin >> t;while(t-->0)
solve();
}
/*
2 9 9 3 1 1 3 8 8 8
*/
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |