Submission #1054171

#TimeUsernameProblemLanguageResultExecution timeMemory
1054171MokocraftPalembang Bridges (APIO15_bridge)C++14
22 / 100
59 ms4408 KiB
#include <iostream> #include <stdio.h> #include <array> #include <algorithm> #include <vector> #include <cmath> int main() { //freopen("duotaA.txt", "r", stdin); int K, N; std::cin >> K >> N; long long extra = 0; std::vector<std::pair<int, int>> ranges; for(int i = 0; i < N; i++) { int ai, bi; char ac, bc; std::cin >> ac >> ai >> bc >> bi; if(ai > bi) std::swap(ai, bi); if(ac == bc) extra += bi - ai; else ranges.push_back(std::make_pair(ai, bi)); } N = ranges.size(); if(N == 0) { std::cout << extra; return 0; } if(K == 1) { long long dist = 0; int nums[N*2]; for(int i = 0; i < N; i++) { nums[i*2] = ranges[i].first; nums[i*2+1] = ranges[i].second; } std::sort(nums, nums + N*2); int point = nums[N]; for(int i = 0; i < N; i++) { if(point >= ranges[i].first && point <= ranges[i].second) dist += 1 + ranges[i].second - ranges[i].first; else dist += 1 + ranges[i].second - ranges[i].first + 2 * std::min(std::abs(ranges[i].second - point), std::abs(ranges[i].first - point)); } std::cout << dist + extra; } return 0; }
#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...