1284D - New Year and Conference - CodeForces Solution


binary search data structures hashing sortings *2100

Please click on ads to support us..

C++ Code:

// Hydro submission #[email protected]
#include <bits/stdc++.h>
using namespace std; 
typedef unsigned long long u64; 

int n; 
mt19937_64 Rand(time(0)); 
u64 val[100005], S[100005]; 

struct Node {
    int p, id, k; 
    bool operator< (const Node &a) {
        if (p == a.p) return k < a.k; 
        return p < a.p; 
    }
} a[200005], b[200005]; 

int main(void) {
    scanf("%d", &n); 
    for (int i = 1, x; i <= n; ++i) {
        val[i] = Rand(); 
        scanf("%d", &x); a[i * 2 - 1] = {x, i, 0}; 
        scanf("%d", &x); a[i * 2] = {x, i, 1}; 
        scanf("%d", &x); b[i * 2 - 1] = {x, i, 0}; 
        scanf("%d", &x); b[i * 2] = {x, i, 1}; 
    } sort(a + 1, a + n * 2 + 1); sort(b + 1, b + n * 2 + 1); 
    u64 V = 0; 
    for (int i = 1; i <= n * 2; ++i) 
        if (a[i].k) V ^= val[a[i].id]; 
        else S[a[i].id] ^= V; 
    V = 0; 
    for (int i = n * 2; i >= 1; --i)
        if (!a[i].k) V ^= val[a[i].id]; 
        else S[a[i].id] ^= V; 
    V = 0; 
    for (int i = 1; i <= n * 2; ++i) 
        if (b[i].k) V ^= val[b[i].id]; 
        else S[b[i].id] ^= V; 
    V = 0; 
    for (int i = n * 2; i >= 1; --i)
        if (!b[i].k) V ^= val[b[i].id]; 
        else S[b[i].id] ^= V; 
    bool flag = 1; 
    for (int i = 1; i <= n; ++i) flag &= S[i] == 0;  
    return puts(flag ? "Yes" : "No"); 
}


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST