제출 #1325975

#제출 시각아이디문제언어결과실행 시간메모리
1325975antarbanikArt Exhibition (JOI18_art)C++20
10 / 100
1100 ms152436 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define yes cout << "YES\n"; #define nl cout << endl; #define no cout << "NO\n"; #define all(x) x.begin(), x.end() #define allr(x) x.rbegin(), x.rend() #define pb push_back #define ppb pop_back // #define mp make_pair #define ff first #define ss second #define st string #define fr(i, x, y) for (int i = x; i < y; i++) #define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); // #define MAX 1e18 // #define MIN -1e18 #ifndef ONLINE_JUDGE #define debug(x) cerr << setw(15) << left << #x << ": "; _print(x); cerr << endl; #define del cerr << '\n'; #else #define debug(x) #define del #endif void _print(int t) {cerr << t;} void _print(string t) {cerr << t;} void _print(char t) {cerr << t;} template <typename T, typename V> void _print(const pair<T, V>& p) {cerr << '{'; _print(p.first); cerr << ", "; _print(p.second); cerr << '}';} template <typename T> void _print(const vector<T>& v) {cerr << '['; for (size_t i = 0; i < v.size(); ++i) {_print(v[i]); if (i != v.size() - 1) cerr << ", ";} cerr << ']';} template <typename T> void _print(const set<T>& s) {cerr << '{'; bool first = true; for (const auto& x : s) {if (!first) cerr << ", "; _print(x); first = false;} cerr << '}';} template <typename T> void _print(const multiset<T>& s) {cerr << '{'; bool first = true; for (const auto& x : s) {if (!first) cerr << ", "; _print(x); first = false;} cerr << '}';} template <typename T, typename V> void _print(const map<T, V>& m) {cerr << '{'; bool first = true; for (const auto& kv : m) {if (!first) cerr << ", "; _print(kv); first = false;} cerr << '}';} int power(int n, int k){int result = 1;while (k > 0) {if (k & 1) {result = (result * n);}n = (n * n);k >>= 1;}return result;} int gcd(int a, int b) {if (b > a) {return gcd(b, a);} if (b == 0) {return a;} return gcd(b, a % b);} int lcm(int a, int b) {return (a / __gcd(a, b)) * b;} // bool isPrime(int n) {if (n <= 1) return false;if (n == 2) return true;if (n % 2 == 0) return false;for (int i = 3; i * i <= n; i += 2) {if (n % i == 0) return false;}return true;} /* sz = size of the art works val = value of the art works S = tot value of the choosen artworks Amx = jegula choose kora oise egular modde max size Amn = jegula choose kora oise egular modde min size maximize : S - (Amx - Amn) */ const int N = 303; vector<int> sz(N), val(N); int n; map<tuple<int,int,int,int>, int> dp; int f(int i, int mx, int mn, int sum){ if(i == n){ if(mn == 1e18 || mx == -1e18) return 0; return sum - (mx - mn); } if(dp.count({i, mx, mn, sum})) return dp[{i, mx, mn, sum}]; int not_choose = f(i+1, mx, mn, sum); int choose = f(i+1, max(mx, sz[i]), min(mn, sz[i]), sum + val[i]); return dp[{i, mx, mn, sum}] = max(choose, not_choose); } void solve(){ cin>>n; for(int i = 0;i<n;++i){ int a, b; cin>>a>>b; sz[i] = a; val[i] = b; } cout<<f(0, -1e18, 1e18, 0); } int32_t main() { FAST #ifndef ONLINE_JUDGE freopen("error.txt", "w", stderr); #endif int t = 1; // cin >> t; while (t--) { solve(); cout << endl; } }

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

art.cpp: In function 'int32_t main()':
art.cpp:124:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  124 |         freopen("error.txt", "w", stderr);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...