Submission #783493

#TimeUsernameProblemLanguageResultExecution timeMemory
783493vjudge1전선 연결 (IOI17_wiring)C++17
0 / 100
379 ms164932 KiB
#include "wiring.h" #include<bits/stdc++.h> using namespace std; map<int, long long> dp[100100]; long long min_total_length(std::vector<int> R, std::vector<int> B) { for(int j = 1; j < 100100; j++) dp[j][0] = dp[0][j] = 1e18; int passed = 0; for(int i = 1; i <= R.size(); i++) { while(passed<B.size()&&B[passed]<R[i-1]) passed++; for(int j = max(1, passed-10); j <= min((int)B.size(), passed+10); j++) { if(i==4&&j==4) { cout << ""; } int dist1=1e9, dist2=1e9; auto y = lower_bound(B.begin(), B.begin()+j, R[i-1]); if(y!=B.begin()+j) dist1 = abs(*y-R[i-1]); if(y!=B.begin()) { y--; dist1 = min(dist1, abs(*y-R[i-1])); } auto x = lower_bound(R.begin(), R.begin()+i, B[j-1]); if(x!=R.begin()+i) dist2 = abs(*x-B[j-1]); if(x!=R.begin()) { x--; dist2 = min(dist2, abs(*x-B[j-1])); } dp[i][j] = min(dp[i-1][j-1]+abs(R[i-1]-B[j-1]), min(dp[i-1][j]+dist1, dp[i][j-1]+dist2)); } } return dp[R.size()][B.size()]; }

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:9:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    9 |     for(int i = 1; i <= R.size(); i++) {
      |                    ~~^~~~~~~~~~~
wiring.cpp:10:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |         while(passed<B.size()&&B[passed]<R[i-1])
      |               ~~~~~~^~~~~~~~~
#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...