답안 #443019

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
443019 2021-07-09T13:28:02 Z leaked 결혼 문제 (IZhO14_marriage) C++14
14 / 100
27 ms 1824 KB
#include <bits/stdc++.h>
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("-O3")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define vec vector
#define sz(x) ( int)x.size()
#define m_p make_pair
#define f first
#define s second
#define pb push_back
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
using namespace std;
typedef long long ll;
typedef pair<ll, int> pli;
typedef pair<int,ll> pil;
typedef pair<int,int> pii;
typedef unsigned long long ull;
auto rng=bind(uniform_int_distribution<int>(1,1000),mt19937(time(0)));
template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);}
template<class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);}
const int N=3e4+1;
const int K=165;
const int M=2001;
vec<int> g[N];
int mt[N];
int wh[N];
int u[N],tt,n,m;
int tl,tr;
bool kuhn(int v){
    if(u[v]==tt) return 0;
    u[v]=tt;
    for(auto &z : g[v]){
        if(z>=tl && z<=tr && mt[z]==-1){
            mt[z]=v;
            wh[v]=z;
            return 1;
        }
    }
    for(auto &z : g[v]){
        if(z>=tl && z<=tr && kuhn(mt[z])){
            mt[z]=v;
            wh[v]=z;
            return 1;
        }
    }
    return 0;
}
int check(int l,int r){
    tl=l;tr=r;
    for(int i=0;i<m;i++){
        if(wh[i]==-1) continue;
        mt[wh[i]]=-1;
        wh[i]=-1;
    }
    for(int i=0;i<m;i++){
        tt++;
        if(!kuhn(i)) return 0;
    }
    return 1;
}
signed main(){
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int k;
    cin>>n>>m>>k;
    for(int i=0;i<k;i++){
        int v,u;
        cin>>v>>u;--v;--u;
        g[u].pb(v);
    }
    for(int i=0;i<N;i++){
        mt[i]=-1;
        wh[i]=-1;
    }
    int l=0,r=n;
    while(l!=r){
        int tm=(l+r)>>1;
        if(check(tm,-1)) l=tm+1;
        else r=tm;
    }
    l--;
    r=n-1;
    ll ans=0;
//    cout<<check(1,4);
    for(int i=l;i>=0;i--){
//        cerr<<i<<' '<<r<<endl;
        while(check(i,r-1)) r--;
//        cout<<i<<' '<<r<<endl;
        ans+=(n-r);
    }
    cout<<ans;
    return 0;
}

/*
5
1 2
2 3
3 4
4 5
5 1
*/
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 1228 KB Output isn't correct
2 Incorrect 1 ms 1228 KB Output isn't correct
3 Incorrect 1 ms 1228 KB Output isn't correct
4 Incorrect 1 ms 1228 KB Output isn't correct
5 Incorrect 1 ms 1228 KB Output isn't correct
6 Incorrect 1 ms 1228 KB Output isn't correct
7 Incorrect 1 ms 1228 KB Output isn't correct
8 Incorrect 1 ms 1228 KB Output isn't correct
9 Correct 1 ms 1228 KB Output is correct
10 Correct 1 ms 1228 KB Output is correct
11 Incorrect 1 ms 1228 KB Output isn't correct
12 Correct 1 ms 1228 KB Output is correct
13 Incorrect 1 ms 1228 KB Output isn't correct
14 Incorrect 1 ms 1228 KB Output isn't correct
15 Incorrect 1 ms 1228 KB Output isn't correct
16 Incorrect 1 ms 1228 KB Output isn't correct
17 Incorrect 1 ms 1228 KB Output isn't correct
18 Incorrect 1 ms 1228 KB Output isn't correct
19 Incorrect 1 ms 1228 KB Output isn't correct
20 Incorrect 1 ms 1228 KB Output isn't correct
21 Correct 1 ms 1248 KB Output is correct
22 Incorrect 1 ms 1228 KB Output isn't correct
23 Incorrect 1 ms 1228 KB Output isn't correct
24 Incorrect 1 ms 1228 KB Output isn't correct
25 Incorrect 3 ms 1356 KB Output isn't correct
26 Incorrect 1 ms 1228 KB Output isn't correct
27 Correct 1 ms 1228 KB Output is correct
28 Incorrect 1 ms 1228 KB Output isn't correct
29 Incorrect 3 ms 1228 KB Output isn't correct
30 Incorrect 2 ms 1228 KB Output isn't correct
31 Incorrect 10 ms 1532 KB Output isn't correct
32 Incorrect 2 ms 1228 KB Output isn't correct
33 Correct 1 ms 1228 KB Output is correct
34 Incorrect 2 ms 1228 KB Output isn't correct
35 Incorrect 18 ms 1756 KB Output isn't correct
36 Incorrect 19 ms 1760 KB Output isn't correct
37 Incorrect 11 ms 1576 KB Output isn't correct
38 Incorrect 22 ms 1756 KB Output isn't correct
39 Incorrect 2 ms 1228 KB Output isn't correct
40 Correct 3 ms 1356 KB Output is correct
41 Incorrect 5 ms 1356 KB Output isn't correct
42 Incorrect 7 ms 1380 KB Output isn't correct
43 Incorrect 11 ms 1484 KB Output isn't correct
44 Incorrect 19 ms 1704 KB Output isn't correct
45 Incorrect 8 ms 1464 KB Output isn't correct
46 Incorrect 22 ms 1752 KB Output isn't correct
47 Incorrect 27 ms 1752 KB Output isn't correct
48 Incorrect 20 ms 1732 KB Output isn't correct
49 Incorrect 23 ms 1824 KB Output isn't correct
50 Incorrect 2 ms 1228 KB Output isn't correct