Submission #44114391


Source Code Expand

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define op(x) ((x&1)?x+1:x-1)
#define odd(x) (x&1)
#define even(x) (!odd(x))
#define lc(x) (x<<1)
#define rc(x) (lc(x)|1)
#define lowbit(x) (x&-x)
#define mp(x,y) make_pair(x,y)
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
using namespace std;

const int MAXN = 5e5+10;

int n,a[MAXN],b[MAXN];

void tomin(int& x,int y){
	x = min(x,y);
}

ll ans;

struct DSU{
	int fa[MAXN];
	void init(){
		iota(fa+1,fa+2+n,1);
	}
	int find(int x){
		return (fa[x] == x) ? (x) : (fa[x] = find(fa[x]));
	}
	void rst(int x){
		fa[x] = find(x+1);
	}
}dsu;

vector<array<int,2> >mdf[MAXN];
multiset<int>S;

set<int>R[MAXN];

void del(int x){
	dsu.rst(x);
	R[a[x]].erase(x);
}

int main(){
	cin>>n;

	rep(i,1,n){	
		cin>>a[i];
	}
	
	dsu.init();

	rep(i,1,n){
		if(a[i] > 1){
			if(R[a[i]-1].size()){
				int u = *R[a[i]-1].rbegin();
				b[i] = u;
				R[a[i]-1].erase(u);

				for(int j = dsu.find(u);j < i;j = dsu.find(j)){
					del(j);
				}
			}
		}

		R[a[i]].insert(i);
	}
	



	rep(i,1,n)if(a[i] > 1){
		mdf[b[i]+1].push_back({i-1,1});
		mdf[i+1].push_back({i-1,-1});
	}

	rep(i,1,n){
		for(auto [x,y] : mdf[i]){
			if(y == 1)S.insert(x);
			else S.erase(S.find(x));
		}
		int p = (S.size()) ? (*S.begin()) : (n);

		ans += p-i+1;
	}

	cout<<ans<<endl;

    return 0;
}

Submission Info

Submission Time
Task B - Insert 1, 2, 3, ...
User Crying
Language C++ (GCC 9.2.1)
Score 600
Code Size 1489 Byte
Status AC
Exec Time 295 ms
Memory 83356 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 60
Set Name Test Cases
Sample 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt
All 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt, 02_rand_1_01.txt, 02_rand_1_02.txt, 02_rand_1_03.txt, 02_rand_1_04.txt, 02_rand_1_05.txt, 02_rand_1_06.txt, 02_rand_1_07.txt, 02_rand_1_08.txt, 02_rand_1_09.txt, 02_rand_1_10.txt, 02_rand_1_11.txt, 02_rand_1_12.txt, 02_rand_1_13.txt, 02_rand_1_14.txt, 02_rand_1_15.txt, 03_rand_2_01.txt, 03_rand_2_02.txt, 03_rand_2_03.txt, 03_rand_2_04.txt, 03_rand_2_05.txt, 03_rand_2_06.txt, 03_rand_2_07.txt, 03_rand_2_08.txt, 03_rand_2_09.txt, 03_rand_2_10.txt, 03_rand_2_11.txt, 03_rand_2_12.txt, 03_rand_2_13.txt, 03_rand_2_14.txt, 03_rand_2_15.txt, 03_rand_2_16.txt, 03_rand_2_17.txt, 03_rand_2_18.txt, 03_rand_2_19.txt, 03_rand_2_20.txt, 03_rand_2_21.txt, 03_rand_2_22.txt, 03_rand_2_23.txt, 03_rand_2_24.txt, 03_rand_2_25.txt, 03_rand_2_26.txt, 03_rand_2_27.txt, 03_rand_2_28.txt, 03_rand_2_29.txt, 03_rand_2_30.txt, 03_rand_2_31.txt, 03_rand_2_32.txt, 03_rand_2_33.txt, 03_rand_2_34.txt, 03_rand_2_35.txt, 03_rand_2_36.txt, 03_rand_2_37.txt, 03_rand_2_38.txt, 03_rand_2_39.txt, 03_rand_2_40.txt, 03_rand_2_41.txt, 03_rand_2_42.txt
Case Name Status Exec Time Memory
01_sample_01.txt AC 30 ms 38560 KB
01_sample_02.txt AC 32 ms 38744 KB
01_sample_03.txt AC 30 ms 38672 KB
02_rand_1_01.txt AC 39 ms 38668 KB
02_rand_1_02.txt AC 31 ms 38596 KB
02_rand_1_03.txt AC 192 ms 65896 KB
02_rand_1_04.txt AC 192 ms 66080 KB
02_rand_1_05.txt AC 37 ms 38652 KB
02_rand_1_06.txt AC 200 ms 60300 KB
02_rand_1_07.txt AC 197 ms 60176 KB
02_rand_1_08.txt AC 225 ms 63544 KB
02_rand_1_09.txt AC 225 ms 63212 KB
02_rand_1_10.txt AC 238 ms 67160 KB
02_rand_1_11.txt AC 241 ms 67196 KB
02_rand_1_12.txt AC 269 ms 74624 KB
02_rand_1_13.txt AC 271 ms 74688 KB
02_rand_1_14.txt AC 293 ms 83232 KB
02_rand_1_15.txt AC 295 ms 83356 KB
03_rand_2_01.txt AC 193 ms 68412 KB
03_rand_2_02.txt AC 196 ms 68328 KB
03_rand_2_03.txt AC 196 ms 68276 KB
03_rand_2_04.txt AC 194 ms 68320 KB
03_rand_2_05.txt AC 194 ms 68252 KB
03_rand_2_06.txt AC 200 ms 68428 KB
03_rand_2_07.txt AC 197 ms 68316 KB
03_rand_2_08.txt AC 210 ms 65124 KB
03_rand_2_09.txt AC 207 ms 65084 KB
03_rand_2_10.txt AC 209 ms 65084 KB
03_rand_2_11.txt AC 210 ms 64976 KB
03_rand_2_12.txt AC 211 ms 64988 KB
03_rand_2_13.txt AC 209 ms 65068 KB
03_rand_2_14.txt AC 210 ms 65060 KB
03_rand_2_15.txt AC 213 ms 62708 KB
03_rand_2_16.txt AC 212 ms 62756 KB
03_rand_2_17.txt AC 214 ms 62820 KB
03_rand_2_18.txt AC 212 ms 62816 KB
03_rand_2_19.txt AC 211 ms 62772 KB
03_rand_2_20.txt AC 213 ms 62788 KB
03_rand_2_21.txt AC 214 ms 62736 KB
03_rand_2_22.txt AC 190 ms 60036 KB
03_rand_2_23.txt AC 191 ms 59976 KB
03_rand_2_24.txt AC 192 ms 60072 KB
03_rand_2_25.txt AC 191 ms 60044 KB
03_rand_2_26.txt AC 188 ms 60012 KB
03_rand_2_27.txt AC 193 ms 59908 KB
03_rand_2_28.txt AC 191 ms 59940 KB
03_rand_2_29.txt AC 174 ms 60068 KB
03_rand_2_30.txt AC 177 ms 59992 KB
03_rand_2_31.txt AC 177 ms 60040 KB
03_rand_2_32.txt AC 175 ms 60036 KB
03_rand_2_33.txt AC 178 ms 60136 KB
03_rand_2_34.txt AC 176 ms 60032 KB
03_rand_2_35.txt AC 177 ms 60116 KB
03_rand_2_36.txt AC 203 ms 61620 KB
03_rand_2_37.txt AC 202 ms 61068 KB
03_rand_2_38.txt AC 208 ms 60532 KB
03_rand_2_39.txt AC 204 ms 62860 KB
03_rand_2_40.txt AC 206 ms 60792 KB
03_rand_2_41.txt AC 205 ms 63576 KB
03_rand_2_42.txt AC 205 ms 63476 KB