⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mipt013.cpp

📁 El Judge MIPT solutions to some easy problems, I hope be usefull to you...
💻 CPP
字号:
/*
Alfonso Alfonso Peterssen
7 - 2 - 2008
MIPT #013 "Boxes"
*/
#include <cstdio>
#include <algorithm>

using namespace std;

const int MAXN = 500;

int N, i, j, flow;
int from[MAXN];
bool mark[MAXN];
int ls[MAXN][3];

    bool augment( int node ) {

        if ( mark[node] )
            return false;

        mark[node] = true;

        int i, j;
        for ( i = 0; i < N; i++ ) {
            for ( j = 0; j < 3; j++ )
                if ( ls[i][j] >= ls[node][j] )
                    break;
            if ( j == 3 && ( from[i] < 0 || augment( from[ i ] ) ) ) {
                from[i] = node;
                return true;
            }
        }

        return false;
    }

int main() {

    scanf( "%d", &N );
    for ( i = 0; i < N; i++ ) {
        for ( j = 0; j < 3; j++ )
            scanf( "%d", &ls[i][j] );
        sort( ls[i], ls[i] + 3 );
    }

    fill( from, from + N, -1 );
    for ( i = 0; i < N; i++ ) {
        fill( mark, mark + N, false );
        if ( augment( i ) )
            flow++;
    }

    printf( "%d\n", N - flow );

    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -