제출 #1279364

#제출 시각아이디문제언어결과실행 시간메모리
1279364nthvnCloud Computing (CEOI18_clo)C++20
100 / 100
472 ms2068 KiB
#include "bits/stdc++.h"
using namespace std;

#define fi first
#define se second
#define pii pair<int,int> 
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
#define pb push_back
#define ll long long
const int N = 2005;
const int C = N*50;
const ll inf = 1e16;
int n,q,tot;
struct DATA{
	int c,f,v,t;
	bool operator < (const DATA &o) const{
		if(f==o.f) return t<o.t;
		return f>o.f;
	}
	void print() {cerr<<c<<" "<<f<<" "<<v<<" "<<t<<"\n";}
}a[N*2];

ll dp[2][C];

signed main(){
	ios_base::sync_with_stdio(NULL);
	cin.tie(NULL);
	if(fopen("TASK.INP", "r")){	
		freopen("TASK.INP", "r", stdin);
		freopen("TASK.OUT", "w", stdout);
	}
	cin>>n;
	for(int i=1;i<=n;i++) {
		int c,f,v; cin>>c>>f>>v;
		a[++tot] = {c,f,v,0};
	}
	cin>>q;
	for(int i=1;i<=q;i++){
		int c,f,v; cin>>c>>f>>v;
		a[++tot] = {c,f,v,1};
	}
	sort(a+1,a+tot+1);
	
	// for(int i=1;i<=tot;i++) a[i].print();
	
	fill_n(&dp[0][0], sizeof(dp)/sizeof(dp[0][0]), -inf);
	dp[0][0] = 0;
	
	for(int i=1;i<=tot;i++){
		int c= a[i].c, f= a[i].f, v= a[i].v, t= a[i].t;
		for(int j=0;j<C;j++){
			ll &res = dp[i&1][j];
			res = dp[(i-1)&1][j];
			if(t){
				if(j+c<C) res = max(res, dp[(i-1)&1][j+c]+v);
			}
			else{
				if(j-c>=0) res = max(res, dp[(i-1)&1][j-c]-v);
			}
			// cerr<<i<<' '<<j<<' '<<res<<"\n";
		}
	}
	cout<<*max_element(&dp[tot&1][0], &dp[tot&1][C-1]+1);
	
}

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

clo.cpp: In function 'int main()':
clo.cpp:30:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |                 freopen("TASK.INP", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:31:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |                 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...