제출 #700956

#제출 시각아이디문제언어결과실행 시간메모리
700956mychecksedadWerewolf (IOI18_werewolf)C++17
15 / 100
4051 ms22076 KiB
#include <bits/stdc++.h> using namespace std; struct Dsu{ vector<int> p, s; Dsu(int n){ s.resize(n + 1, 1); p.resize(n + 1); for(int i = 0; i <= n; ++i) p[i] = i; } int find(int v){ if(v==p[v]) return v; return (p[v] = find(p[v])); } void merge(int a, int b){ a = find(a); b = find(b); if(a != b){ if(s[a] > s[b]) swap(a, b); p[a] = b; s[b] += s[a]; } } }; int n, m; vector<int> check_validity(int N, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R){ n = N, m = X.size(); vector<int> ans(S.size()); for(int q = 0; q < S.size(); ++q){ Dsu small(n), large(n); for(int i = 0; i < m; ++i){ if(X[i] <= R[q] && Y[i] <= R[q]) small.merge(X[i], Y[i]); if(X[i] >= L[q] && Y[i] >= L[q]) large.merge(X[i], Y[i]); } for(int mid = L[q]; mid <= R[q]; ++mid){ if(small.find(mid) == small.find(E[q]) && large.find(mid) == large.find(S[q])){ ans[q] = 1; break; } } } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

werewolf.cpp: In function 'std::vector<int> check_validity(int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
werewolf.cpp:30:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |   for(int q = 0; q < S.size(); ++q){
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...