제출 #866113

#제출 시각아이디문제언어결과실행 시간메모리
866113danikoynovThe Potion of Great Power (CEOI20_potion)C++14
0 / 100
87 ms17284 KiB
#include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int n, h[maxn]; void init(int N, int D, int H[]) { for (int i = 0; i < N; i ++) { h[i] = H[i]; } } const int maxq = 50010; pair < int, int > edge[maxq]; unordered_set < int > act[maxn]; int u; void curseChanges(int U, int A[], int B[]) { u = U; for (int i = 0; i < U; i ++) { edge[i] = {A[i], B[i]}; } for (int i = 0; i < n; i ++) { for (int j = 0; j < U; j ++) { int a = edge[i].first, b = edge[i].second; if (i != a && i != b) continue; int v = b; if (i == b) v = a; if (act[i].find(v) == act[i].end()) act[i].insert(v); else act[i].erase(v); } } } int question(int x, int y, int v) { if (v == u) { vector < int > hx, hy; for (int cur : act[x]) hx.push_back(h[cur]); for (int cur : act[y]) hy.push_back(h[cur]); sort(hx.begin(), hx.end()); sort(hy.begin(), hy.end()); int ans = 1e9; int pt = 0; for (int i = 0; i < hx.size(); i ++) { while(pt < hy.size() && hy[pt] <= hx[i]) pt ++; if (pt != 0) ans = min(ans, abs(hx[i] - hy[pt - 1])); if (pt != hy.size()) ans = min(ans, abs(hx[i] - hy[pt])); } return ans; } set < int > sx, sy; for (int i = 0; i < v; i ++) { int a = edge[i].first; int b = edge[i].second; if (a == x) { if (sx.find(b) == sx.end()) sx.insert(b); else sx.erase(b); } if (b == x) { if (sx.find(a) == sx.end()) sx.insert(a); else sx.erase(a); } if (a == y) { if (sy.find(b) == sy.end()) sy.insert(b); else sy.erase(b); } if (b == y) { if (sy.find(a) == sy.end()) sy.insert(a); else sy.erase(a); } } if (sx.empty() && sy.empty()) return 1e9; int ans = 1e9; for (int a : sx) for (int b : sy) ans = min(ans, abs(h[a] - h[b])); return ans; } /** 6 5 11 4 2 42 1000 54 68 234 0 1 2 0 3 4 3 5 3 5 1 3 5 3 0 5 3 0 1 3 3 5 0 3 4 26 */

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

potion.cpp: In function 'int question(int, int, int)':
potion.cpp:66:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |         for (int i = 0; i < hx.size(); i ++)
      |                         ~~^~~~~~~~~~~
potion.cpp:68:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |             while(pt < hy.size() && hy[pt] <= hx[i])
      |                   ~~~^~~~~~~~~~~
potion.cpp:73:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |             if (pt != hy.size())
      |                 ~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...