Submission #1243177

#TimeUsernameProblemLanguageResultExecution timeMemory
1243177shiori_chanCloud Computing (CEOI18_clo)C++20
100 / 100
743 ms2464 KiB
#include <iostream> #include <vector> #include <random> #include <algorithm> #include <chrono> #include <cstring> #define all(x) x.begin(), x.end() using namespace std; typedef long long ll; #define int long long const int nd = 2e3 + 1; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); uniform_int_distribution<int> dist(1 , (int)2e9); struct node{ bool type; int c , f , v; node(){} node(bool type , int c , int f , int v) : type(type) , c(c) , f(f) , v(v){} bool operator<(const node& o) const{ if(o.f == f) return (type && !o.type); return f > o.f; } }; vector <node> a; int dp[2][50 * nd]; bool build[2][50 * nd]; void solve(){ int n; cin >> n; //memset(dp[0] , -0x3f , sizeof(dp[0])); memset(dp[1] , -0x3f , sizeof(dp[1])); for(int i = 1;i <= n; ++ i){ int c , f , v; cin >> c >> f >> v; a.push_back(node(true , c , f , - v)); } int m; cin >> m; for(int i = 1;i <= m; ++ i){ int c , f , v; cin >> c >> f >> v; a.push_back(node(false , -c , f , v)); } sort(all(a)); int res = 0; build[0][0] = true; build[1][0] = true; for(auto [type , c , f , v] : a){ //cout << type << " " << c << " " << f << " " << v << '\n'; for(int i = 0; i < 50 * nd; ++ i) if(i + c >= 0 && i + c < 50 * nd){ //if(build[0][i]) build[0][] if((dp[1][i + c] < dp[0][i] + v || !build[1][i + c]) && build[0][i]){ build[1][i + c] = true; dp[1][i + c] = dp[0][i] + v; } //cout << i << " " << build[1][i] << '\n'; } for(int i = 0; i < 50 * nd; ++ i){ dp[0][i] = dp[1][i] , res = max(res , dp[1][i]) , build[0][i] = build[1][i]; //cout << i << " " << dp[0][i] << " " << build[0][i] << '\n'; } } cout << res; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); #define task "task" if(fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } solve(); return 0; }

Compilation message (stderr)

clo.cpp: In function 'int main()':
clo.cpp:77:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |                 freopen(task".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:78:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |                 freopen(task".out", "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...