제출 #1036347

#제출 시각아이디문제언어결과실행 시간메모리
1036347beaconmc전선 연결 (IOI17_wiring)C++14
0 / 100
1 ms348 KiB
#include "wiring.h" #include <bits/stdc++.h> typedef int ll; #define FOR(i,x,y) for(ll i=x; i<y; i++) #define FORNEG(i,x,y) for(ll i=x; i>y; i--) using namespace std; ll n,m; vector<ll> R,B; map<vector<ll>, ll> cache; ll dp(ll x, ll y){ if (abs(x-y) > 5) return 1000000000000000; if (cache.count({x,y})) return cache[{x,y}]; if (x==n && y==m) return 0; if (x>=n || y >= m) return 1000000000000000; return cache[{x,y}] = min(dp(x+1,y), min(dp(x,y+1), dp(x+1,y+1))) + abs(R[x] - B[y]); } long long min_total_length(std::vector<int> r, std::vector<int> b) { R = r; B = b; n = r.size(); m = b.size(); return dp(0,0); }

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

wiring.cpp: In function 'll dp(ll, ll)':
wiring.cpp:16:27: warning: overflow in conversion from 'long int' to 'll' {aka 'int'} changes value from '1000000000000000' to '-1530494976' [-Woverflow]
   16 |  if (abs(x-y) > 5) return 1000000000000000;
      |                           ^~~~~~~~~~~~~~~~
wiring.cpp:19:29: warning: overflow in conversion from 'long int' to 'll' {aka 'int'} changes value from '1000000000000000' to '-1530494976' [-Woverflow]
   19 |  if (x>=n || y >= m) return 1000000000000000;
      |                             ^~~~~~~~~~~~~~~~
#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...