1. 程式人生 > >CSU-1974 神奇藥水

CSU-1974 神奇藥水

bre insert Language 參加 需要 while ive 元素 神奇

CSU-1974 神奇藥水

Description

? 對於csuxushu來說,能夠在CSU(California State University)組織2017年的ACM暑期集訓讓他感到十分榮幸。 csuxushu是一名充滿夢想的程序員,因此他也希望來參加暑期集訓的ACM萌新們和他一樣懷揣著書寫CSU-ACM歷史的夢想。 一個偶然的機會,他在機房的某個角落得到了一本來自遠古神犇的藥水配方秘籍。秘籍上記載了許多AC藥水配方,每一種藥水都需要用兩種原料 <勤奮,聰明> 按一定的比例配置而成。

“只要萌新喝下這些藥水,他們的實力將有質的提升!”

? ——《遠古AC藥水秘籍》

? 此刻萌新們正在機房內和題目奮戰,耳邊的WA聲不絕於耳。此情此景,csuxushu下定決心要為萌新們配置這些藥水。 但是這兩種原料市面上並不出售,因此只能由一些已有藥水混合而成。為此他四處搜尋,機房不時放進新的藥水和運出藥水,並且在機房內的每種藥水量都保證足夠多。作為全CSU最聰明的程序員,對於每一個神奇藥水配方,你能告訴他能否配成嗎?

Input

多組數據。

對於每組數據,第一行一個整數N(1?<?=N?<?=105),代表操作數。
接下來N行,每行一個三元組(K,?X,?Y) ,XX 和 YY 分別代表勤奮和聰明兩種原料在藥水中的濃度,其中 XX% + YY% = 100% 。

K?=?0 :詢問是否可以配置神奇藥水(X,?Y) ;

K?=?1 :新增一種原料藥水(X,?Y) ;

K?=??1 :刪除所有原料藥水(X,?Y) ,如果沒有這種藥水則忽略此操作;

Output

對於每個K?=?0 的詢問輸出一行,Yes或No。

Sample Input

6
1 65.00 35.00
0 93.58 6.42
1 44.64 55.36
1 68.27 31.73
0 54.36 45.64
0 46.04 53.96

Sample Output

No
Yes
Yes

set模擬一下即可,因為x + y = 1,所以我們只需考慮x。如果是1即insert(x),-1就clear(), 0就看看set的隊頭元素是否比x小,隊尾元素是否比x大,都滿足輸出yes否則輸出no

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    int n;
    set<int> s1, s2;
    while (scanf("%d", &n) != EOF) {
        s1.clear();
        s2.clear();
        for (int i = 1; i <= n; i++) {
            int q;
            scanf("%d", &q);
            double x1, y1;
            scanf("%lf%lf", &x1, &y1);
            int x = x1 * 100, y = y1 * 100;
            switch (q) {
            case 1:
                s1.insert(x);
                s2.insert(y);
                break;
            case -1:
                s1.erase(x);
                s2.erase(y);
                break;
            case 0:
                if (s1.empty()) {
                    printf("No\n");
                    break;
                }
                else if (*s1.begin() <= x && *(--s1.end()) >= x){
                    printf("Yes\n");
                    break;
                }
                else {
                    printf("No\n");
                    break;
                }
            }
        }
    }
    return 0;
}
/**********************************************************************
    Problem: 1974
    User: Artoriax
    Language: C++
    Result: AC
    Time:160 ms
    Memory:2292 kb
**********************************************************************/

CSU-1974 神奇藥水