제출 #48183

#제출 시각아이디문제언어결과실행 시간메모리
48183E869120Palembang Bridges (APIO15_bridge)C++14
8 / 100
2062 ms5536 KiB
#include <iostream> #include <cmath> #include <algorithm> #include <vector> using namespace std; long long N, K, Q, A[100009], B[100009], sum; vector<long long>Z; vector<long long>S; long long calculate() { long long rem = 0; for (int i = 1; i <= Q; i++) { long long F = (1LL << 60); for (int j = 0; j < S.size(); j++) { if (A[i] <= S[j] && S[j] <= B[i]) F = 0; F = min(F, 2LL * min(abs(A[i] - S[j]), abs(B[i] - S[j]))); } rem += F; } return sum + rem; } int main() { cin >> K >> N; for (int i = 1; i <= N; i++) { char a1, b1; long long a2, b2; cin >> a1 >> a2 >> b1 >> b2; if (a1 == b1) sum += abs(a2 - b2); else { Q++; if (a2 > b2) swap(a2, b2); A[Q] = a2; B[Q] = b2; sum += (b2 - a2 + 1); } } Z.push_back(0); for (int i = 1; i <= Q; i++) { Z.push_back(A[i]); Z.push_back(B[i]); } sort(Z.begin(), Z.end()); if (K == 1) { long long ans = (1LL << 60); for (int i = 0; i < Z.size(); i++) { S = vector<long long>{ Z[i] }; ans = min(ans, calculate()); } cout << ans << endl; } if (K == 2) { long long ans = (1LL << 60); for (int i = 0; i < Z.size(); i++) { for (int j = i + 1; j < Z.size(); j++) { S = vector<long long>{ Z[i], Z[j] }; ans = min(ans, calculate()); } } cout << ans << endl; } return 0; }

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

bridge.cpp: In function 'long long int calculate()':
bridge.cpp:14:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = 0; j < S.size(); j++) {
                   ~~^~~~~~~~~~
bridge.cpp: In function 'int main()':
bridge.cpp:40:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < Z.size(); i++) {
                   ~~^~~~~~~~~~
bridge.cpp:48:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < Z.size(); i++) {
                   ~~^~~~~~~~~~
bridge.cpp:49:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int j = i + 1; j < Z.size(); j++) {
                        ~~^~~~~~~~~~
#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...