pat1149 Dangerous Goods Packaging

1366 단어 pat
제목: 함께 놓을 수 없는 화물에 대해 n을 주고 q개의 질문을 하며 매번 화물을 함께 놓을 수 있는지 물어본다.
사고방식: set로 함께 놓을 수 없는 물건을 저장한 다음에 두루 훑어보면 된다.
코드
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int MAX_N = 10010;
int n, q, k, x, y, len, a[MAX_N];

set> st;
set show;

void solve() {
    for (int j = 0; j < len; j++) {
        for (int t = j+1; t < len; t++) {
            if (st.count(make_pair(a[j], a[t]))) {
                printf("No
"); return ; } } } printf("Yes
"); return ; } int main() { // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); scanf("%d %d", &n, &q); for (int i = 0; i < n; i++) { scanf("%d %d", &x, &y); st.insert(make_pair(x, y)); st.insert(make_pair(y, x)); show.insert(x); show.insert(y); } for (int i = 0; i < q; i++) { scanf("%d", &k); len = 0; for (int j = 0; j < k; j++) { scanf("%d", &x); if (show.count(x)) a[len++] = x; } solve(); } return 0; }

좋은 웹페이지 즐겨찾기