ABC364E代码

using namespace std ;

typedef long long int ll ;

ll h , w , m , k ;
map<ll,ll> ylsl ;

int main ( ) {
    cin >> h >> w >> m ;

    int h01[h] ; ll sh01 ;
    int w01[w] ; ll sw01 ;
    fill ( h01 , h01 + h , 0 ) ; sh01 = 0 ;
    fill ( w01 , w01 + w , 0 ) ; sw01 = 0 ;
    
    ll cz[m][3] ;
    for ( ll i = 0 ; i < m ; i ++ ) {
        cin >> cz[i][0] >> cz[i][1] >> cz[i][2] ;
        cz[i][1] -- ; ylsl[cz[i][2]] = 0 ;
    }

    for ( ll i = m - 1 ; i >= 0 ; i -- ) {
        if ( cz[i][0] == 1 ) {
            if ( h01[cz[i][1]] == 0 ) {
                h01[cz[i][1]] = 1 ;
                sh01 ++ ;
                if ( w > sw01 ) {
                    ylsl[cz[i][2]] += w - sw01 ;
                }
            }
        }else {
            if ( w01[cz[i][1]] == 0 ) {
                w01[cz[i][1]] = 1 ;
                sw01 ++ ;
                if ( h > sh01 ) {
                    ylsl[cz[i][2]] += h - sh01 ;
                }
            }
        }
    }
    ylsl[0] += ( h - sh01 ) * ( w - sw01 ) ;

    for ( auto i : ylsl ) k += ( i.second > 0 ) ;

    cout << k << endl ;
    for ( auto i : ylsl ) {
        if ( i.second ) {
            cout << i.first << " " << i.second << endl ;
        }
    }

    return 0 ;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务