Submission #160782

#TimeUsernameProblemLanguageResultExecution timeMemory
160782sofhiasouzaCover (COCI18_cover)C++14
96 / 120
12 ms636 KiB
#include <bits/stdc++.h> #define int long long #define pb push_back #define F first #define S second using namespace std; typedef pair < int, int > ii; const int maxn = 5e3+10, inf = 1e18; int n, dp[maxn]; map < int, int > mapa; int32_t main() { cin >> n; for(int i = 1 ; i <= n ; i++) { int x, y; cin >> x >> y; x = abs(x+x); y = abs(y+y); mapa[x] = max(mapa[x], y); } vector < ii > aux; for(auto v : mapa) { if(!aux.size() or aux[aux.size()-1].S > v.S) aux.pb(v); else if(aux.size()) { aux.pop_back(); aux.pb(v); } } //reverse(aux.begin(), aux.end()); /*for(int i = 0 ; i < aux.size() ; i++) { cout << aux[i].F << ' ' << aux[i].S << "\n"; }*/ dp[1] = 0; for(int i = 1 ; i < aux.size() ; i++) { dp[i+1] = inf; for(int j = 0 ; j < i ; j++) { dp[i+1] = min(dp[i+1], dp[j+1] + aux[j].S*aux[i-1].F); } } int resp = inf; for(int i = 0 ; i < aux.size() ; i++) { resp = min(resp, dp[i+1] + aux[i].S*aux[aux.size()-1].F); } cout << resp << "\n"; }

Compilation message (stderr)

cover.cpp: In function 'int32_t main()':
cover.cpp:51:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 1 ; i < aux.size() ; i++)
                  ~~^~~~~~~~~~~~
cover.cpp:62:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0 ; i < aux.size() ; i++)
                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...