You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# include <bits/stdc++.h>
using namespace std ;
const int N = 110 ;
int a [ N ] ;
int st [ 10 ] ;
struct Node {
int st , ed ;
} ;
vector < Node > q ;
int res ;
/*
5
1 2 3 3 2
5
3 2 4 2 3
7
3 2 4 2 5 3 1
*/
int main ( ) {
int n ;
cin > > n ;
for ( int i = 1 ; i < = n ; i + + ) cin > > a [ i ] ; // 密码数组
for ( int i = 1 ; i < = n ; i + + ) {
if ( ! st [ a [ i ] ] ) {
st [ a [ i ] ] = 1 ;
for ( int j = n ; j ; j - - )
if ( a [ i ] = = a [ j ] ) {
q . push_back ( { i , j } ) ;
break ;
}
}
}
// 从左到右枚举,所以,不再需再进行按左端点排序,现在就是按左端点排序完的
// Q:求一组区间的相交区间个数?如果存在一个相交区间, 就多加1个1
res = q . size ( ) ;
for ( int i = 0 ; i < q . size ( ) ; i + + ) cout < < q [ i ] . st < < " " < < q [ i ] . ed < < endl ;
for ( int i = 0 ; i < q . size ( ) ; i + + )
for ( int j = i + 1 ; j < q . size ( ) ; j + + ) {
if ( q [ i ] . ed > q [ j ] . st & & q [ j ] . ed > q [ i ] . ed ) {
res + + ;
}
}
cout < < res < < endl ;
return 0 ;
}