COFO::1284B New Year and Ascent Sequence

Problem

Point

Design

Complexity

Code

#include<iostream>
#include<vector>
#include<queue>
#include<map>
#include<algorithm>
#define sz(v) ((int)(v).size())
#define all(v) (v).begin(), (v).end()
#define rep(i, a, b) for(int i=(a); i<(b); i++)
#define r_rep(i, a, b) for(int i=(a); i >(b); i--)
typedef long long ll;
using namespace std;

vector<pair<int,int> > v;
void solve(){
    int n; cin  >> n;
    ll ans = 1LL * n * n;
    rep(i, 0, n){
        int cnt; cin >> cnt;
        vector<int> a(cnt);
        rep(i, 0, cnt) cin >> a[i];
        reverse(all(a));
        if(is_sorted(all(a)))
            //v.push_back({a[0], a.back()});
            v.emplace_back(a[0], a.back());
           
    }
    
    sort(all(v));
    rep(i, 0, sz(v)){
        ll C = v.end() - lower_bound(all(v), pair<int, int> (v[i].second, -1));
        ans -= C;
    }
    cout << ans << '\n';
}

int main(){
 //   freopen("input.txt", "r", stdin);
    solve();
    return 0;
}