제출 #1281819

#제출 시각아이디문제언어결과실행 시간메모리
1281819quan606303은행 (IZhO14_bank)C++20
100 / 100
106 ms8584 KiB
/*idea : */ #include <bits/stdc++.h> bool M1; #define ll long long #define INTMAX INT_MAX #define INTMIN INT_MIN #define LONGMAX LLONG_MAX #define LONGMIN LLONG_MIN #define fi first #define se second #define memfull(a,b) memset(a,b,sizeof(a)); #define endl '\n' #define TASK "TEST" #define file() if (fopen(TASK".inp","r")){freopen(TASK".inp","r",stdin); freopen(TASK".out","w",stdout);} using namespace std; const int MOD=1e9+7; int a[25],b[25]; int dp[(1<<20)+6],s[(1<<20)+6],pre[25]; int n,m; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); file(); cin>>n>>m; for (int i=1;i<=n;i++)cin>>a[i]; for (int i=1;i<=n;i++)pre[i]=pre[i-1]+a[i]; for (int i=0;i<m;i++)cin>>b[i]; for (int mask=1;mask<(1<<m);mask++) { int sum=0; for (int i=0;i<m;i++)if (mask&(1<<i))sum+=b[i]; s[mask]=sum; } dp[0]=0; for (int mask1=1;mask1<(1<<m);mask1++) { for (int cnt1=mask1;cnt1;cnt1^=(cnt1&-cnt1)) { int pos=__builtin_ctz(cnt1); int mask2=mask1^(1<<pos); int du=s[mask2]-pre[dp[mask2]]; int cur=dp[mask2]+1; if (du+b[pos]<a[cur])dp[mask1]=max(dp[mask1],dp[mask2]); else if (du+b[pos]==a[cur])dp[mask1]=max(dp[mask1],dp[mask2]+1); } if (dp[mask1]==n) { cout<<"YES"; return 0; } } cout<<"NO"; bool M2; cerr<<"-------------------------------------------------"<<endl; cerr<<"Time : "<<clock()<<" ms"<<endl; cerr<<"Memory : "<<abs(&M2-&M1)/1024/1024<<" MB"<<endl; cerr<<"-------------------------------------------------"<<endl; return 0; }

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

bank.cpp: In function 'int32_t main()':
bank.cpp:18:50: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 | #define file() if (fopen(TASK".inp","r")){freopen(TASK".inp","r",stdin); freopen(TASK".out","w",stdout);}
      |                                           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
bank.cpp:29:5: note: in expansion of macro 'file'
   29 |     file();
      |     ^~~~
bank.cpp:18:81: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 | #define file() if (fopen(TASK".inp","r")){freopen(TASK".inp","r",stdin); freopen(TASK".out","w",stdout);}
      |                                                                          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:29:5: note: in expansion of macro 'file'
   29 |     file();
      |     ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...