Submission #1414474


Source Code Expand

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define fore(i,a) for(auto &i:a)
#pragma GCC optimize ("-O3")
using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); }
//---------------------------------------------------------------------------------------------------
/*---------------------------------------------------------------------------------------------------
            ∧_∧  
      ∧_∧  (´<_` )  Welcome to My Coding Space!
     ( ´_ゝ`) /  ⌒i     
    /   \     | |     
    /   / ̄ ̄ ̄ ̄/  |  
  __(__ニつ/     _/ .| .|____  
     \/____/ (u ⊃  
---------------------------------------------------------------------------------------------------*/
 
 


#define NO "NO"
#define YES "YES"
int N, H;
int L[101010], R[101010];
int in[505], ou[505];
int used[505];
//---------------------------------------------------------------------------------------------------
vector<int> E[505];
int vis[505];
void dfs(int cu) {
    vis[cu] = 1;
    fore(to, E[cu]) if(!vis[to]) {
        dfs(to);
    }
}
//---------------------------------------------------------------------------------------------------
string solve() {
    cin >> N >> H;

    // make_edge
    rep(i, 0, N) {
        int a, b, c, d; cin >> a >> b >> c >> d;

        int l;
        if (0 < c) l = -c;
        else l = a;

        int r;
        if (0 < d) r = d;
        else r = -b;

        l += 250, r += 250;

        L[i] = l, R[i] = r;
    }

    // in/out check
    rep(i, 0, N) {
        int l = L[i], r = R[i];
        ou[l]++; in[r]++;
    }
    rep(i, 0, 505) {
        int x = i - 250;
        if (0 < x) if (ou[i] < in[i]) return NO;
        if (x < 0) if (in[i] < ou[i]) return NO;
    }

    // cycle check
    rep(i, 0, N) {
        int l = L[i], r = R[i];
        used[l] = used[r] = 1;
        E[l].push_back(r);
    }

    rep(i, 0, 505) {
        int x = i - 250;
        if (0 < x) if (ou[i] > in[i]) if (!vis[i]) dfs(i);
    }
    rep(i, 0, 505) if (used[i]) if (!vis[i]) return NO;

    return YES;
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cout << solve() << endl;
}

Submission Info

Submission Time
Task E - Jigsaw
User hamayanhamayan
Language C++14 (GCC 5.4.1)
Score 1200
Code Size 2449 Byte
Status AC
Exec Time 30 ms
Memory 1792 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1200 / 1200
Status
AC × 3
AC × 84
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, a1.txt, a2.txt, a3.txt, b1.txt, b10.txt, b101.txt, b102.txt, b103.txt, b104.txt, b105.txt, b106.txt, b107.txt, b108.txt, b109.txt, b11.txt, b110.txt, b111.txt, b112.txt, b113.txt, b114.txt, b115.txt, b116.txt, b117.txt, b118.txt, b119.txt, b12.txt, b13.txt, b14.txt, b15.txt, b2.txt, b200.txt, b201.txt, b202.txt, b203.txt, b204.txt, b205.txt, b206.txt, b207.txt, b208.txt, b209.txt, b210.txt, b211.txt, b212.txt, b213.txt, b214.txt, b215.txt, b216.txt, b217.txt, b218.txt, b219.txt, b3.txt, b300.txt, b301.txt, b302.txt, b303.txt, b304.txt, b305.txt, b306.txt, b307.txt, b308.txt, b309.txt, b310.txt, b311.txt, b4.txt, b5.txt, b6.txt, b7.txt, b8.txt, b9.txt, c1.txt, c2.txt, c3.txt, c4.txt, c5.txt, d1.txt, d2.txt, d3.txt, d4.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
a1.txt AC 1 ms 256 KB
a2.txt AC 4 ms 384 KB
a3.txt AC 29 ms 1024 KB
b1.txt AC 1 ms 256 KB
b10.txt AC 7 ms 640 KB
b101.txt AC 30 ms 1664 KB
b102.txt AC 30 ms 1664 KB
b103.txt AC 30 ms 1664 KB
b104.txt AC 30 ms 1792 KB
b105.txt AC 30 ms 1664 KB
b106.txt AC 14 ms 896 KB
b107.txt AC 27 ms 1536 KB
b108.txt AC 30 ms 1664 KB
b109.txt AC 27 ms 1536 KB
b11.txt AC 20 ms 1280 KB
b110.txt AC 30 ms 1664 KB
b111.txt AC 30 ms 1792 KB
b112.txt AC 30 ms 1664 KB
b113.txt AC 30 ms 1664 KB
b114.txt AC 30 ms 1664 KB
b115.txt AC 14 ms 896 KB
b116.txt AC 27 ms 1408 KB
b117.txt AC 30 ms 1664 KB
b118.txt AC 23 ms 1408 KB
b119.txt AC 27 ms 1536 KB
b12.txt AC 21 ms 896 KB
b13.txt AC 30 ms 1664 KB
b14.txt AC 30 ms 1792 KB
b15.txt AC 30 ms 1664 KB
b2.txt AC 4 ms 512 KB
b200.txt AC 28 ms 1024 KB
b201.txt AC 28 ms 1024 KB
b202.txt AC 28 ms 1024 KB
b203.txt AC 29 ms 1024 KB
b204.txt AC 30 ms 1664 KB
b205.txt AC 30 ms 1792 KB
b206.txt AC 28 ms 1024 KB
b207.txt AC 29 ms 1024 KB
b208.txt AC 29 ms 1664 KB
b209.txt AC 28 ms 1024 KB
b210.txt AC 28 ms 1024 KB
b211.txt AC 30 ms 1664 KB
b212.txt AC 29 ms 1024 KB
b213.txt AC 30 ms 1664 KB
b214.txt AC 30 ms 1792 KB
b215.txt AC 29 ms 1024 KB
b216.txt AC 30 ms 1792 KB
b217.txt AC 29 ms 1664 KB
b218.txt AC 28 ms 1024 KB
b219.txt AC 29 ms 1536 KB
b3.txt AC 29 ms 1024 KB
b300.txt AC 29 ms 1664 KB
b301.txt AC 27 ms 1024 KB
b302.txt AC 20 ms 1536 KB
b303.txt AC 19 ms 1536 KB
b304.txt AC 28 ms 1792 KB
b305.txt AC 28 ms 1024 KB
b306.txt AC 21 ms 896 KB
b307.txt AC 20 ms 1488 KB
b308.txt AC 26 ms 1536 KB
b309.txt AC 29 ms 1664 KB
b310.txt AC 25 ms 1664 KB
b311.txt AC 25 ms 1792 KB
b4.txt AC 29 ms 1792 KB
b5.txt AC 4 ms 384 KB
b6.txt AC 4 ms 384 KB
b7.txt AC 4 ms 384 KB
b8.txt AC 4 ms 384 KB
b9.txt AC 4 ms 384 KB
c1.txt AC 25 ms 1024 KB
c2.txt AC 25 ms 1024 KB
c3.txt AC 21 ms 1376 KB
c4.txt AC 25 ms 1024 KB
c5.txt AC 13 ms 1024 KB
d1.txt AC 29 ms 1664 KB
d2.txt AC 30 ms 1664 KB
d3.txt AC 29 ms 1664 KB
d4.txt AC 23 ms 1408 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB
sample3.txt AC 1 ms 256 KB