제출 #580322

#제출 시각아이디문제언어결과실행 시간메모리
580322juggernautCloud Computing (CEOI18_clo)C++14
54 / 100
148 ms524 KiB
#include<bits/stdc++.h> #define fr first #define sc second using namespace std; typedef long long ll; typedef long double ld; #define USING_ORDERED_SET 0 #if USING_ORDERED_SET #include<bits/extc++.h> using namespace __gnu_pbds; template<class T>using ordered_set=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; #endif template<class T>void umax(T &a,T b){if(a<b)a=b;} template<class T>void umin(T &a,T b){if(b<a)a=b;} #ifdef juggernaut #define printl(args...) printf(args) #else #define printl(args...) 0 #endif struct dat{ int core; int freq; int cost; }a[4005]; int n,m; bool cmp(dat l,dat r){ if(l.freq==r.freq)return l.cost<r.cost; return l.freq>r.freq; } const int MX=25000; ll dp[MX+5]; int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d%d",&a[i].core,&a[i].freq,&a[i].cost); a[i].cost*=-1; } fill(dp,dp+MX+5,-1e15); dp[0]=0; scanf("%d",&m); for(int i=n;i<n+m;i++)scanf("%d%d%d",&a[i].core,&a[i].freq,&a[i].cost); sort(a,a+n+m,cmp); for(int i=0;i<n+m;i++){ if(a[i].cost<0){ for(int j=MX;j>=a[i].core;j--) umax(dp[j],dp[j-a[i].core]+a[i].cost); }else{ for(int j=0;j<=MX-a[i].core;j++) umax(dp[j],dp[j+a[i].core]+a[i].cost); } } for(int i=1;i<=MX;i++)umax(dp[i],dp[i-1]); cout<<dp[MX]; }

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

clo.cpp: In function 'int main()':
clo.cpp:33:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |  scanf("%d",&n);
      |  ~~~~~^~~~~~~~~
clo.cpp:35:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 |   scanf("%d%d%d",&a[i].core,&a[i].freq,&a[i].cost);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clo.cpp:40:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |  scanf("%d",&m);
      |  ~~~~~^~~~~~~~~
clo.cpp:41:29: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 |  for(int i=n;i<n+m;i++)scanf("%d%d%d",&a[i].core,&a[i].freq,&a[i].cost);
      |                        ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...