提出 #18375956
ソースコード 拡げる
#include <algorithm>
#include <iterator>
#include <iostream>
#include <sstream>
#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <list>
#include <map>
#include <set>
#include <time.h>
#include <limits>
#include <math.h>
#include <climits>
#include <numeric>
#include <utility>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <functional>
#include<unordered_map>//#include <ext/pb_ds/detail/standard_policies.hpp>
using namespace std;
//using namespace __gnu_pbds;
//debugger start
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}
template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif
//debugger end
#define endl '\n'
#define sl(n) scanf("%lld",&n)
#define mp make_pair
#define pb push_back
#define ppb pop_back
#define fi first
#define se second
#define ll long long
#define ull unsigned long long
#define ld long double
#define pii pair<int, int>
#define f(i,a,b) for(ll i = (ll)(a); i < (ll)(b); i++)
#define rf(i,a,b) for(ll i = (ll)(a); i > (ll)(b); i--)
#define ms(a,b) memset((a),(b),sizeof(a))
#define abs(x) ((x<0)?(-(x)):(x))
#define MAX 300055
#define inf LLONG_MAX
#define ninf LLONG_MIN
#define MIN INT_MIN
#define yeet return 0;
#define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define fast_io ios_base::sync_with_stdio (false) ; cin.tie(0) ; cout.tie(0) ;
// Use cout.flush() for interactive problems.
// Use this for increased stack size: g++ -o a.exe -Wl,--stack=256000000 -O2 source.cpp
inline long long MAX2(long long a, long long b){return (a)>(b)?(a):(b);}
inline long long MAX3(long long a, long long b,long long c){return (a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c));}
inline long long MIN2(long long a, long long b){return (a)<(b)?(a):(b);}
inline long long MIN3(long long a, long long b,long long c){return (a)<(b)?((a)<(c)?(a):(c)):((b)<(c)?(b):(c));}
//typedef
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int uint64;
int mod = 998244353 ;
int64_t extGcd(int64_t a, int64_t b, int64_t& x, int64_t& y) {if (!a) {x = 0;y = 1;return b;}int64_t x1, y1;int64_t d = extGcd(b % a, a, x1, y1);x = y1 - (b / a) * x1;y = x1;return d;}
inline ll addmod(ll a,ll b){a=a%mod+b%mod;if(a>mod)a%=mod;return a;}
inline ll submod(ll a,ll b){a=a%mod-b%mod;if(a<0)a+=mod;return a;}
inline ll mulmod(ll a,ll b){return (a%mod * b%mod)%mod;}
int dx[]={1,1,0,-1,-1,-1, 0, 1};
int dy[]={0,1,1, 1, 0,-1,-1,-1};
int DX[]={ 2, 1, -1, -2, -2, -1, 1, 2 };
int DY[]={ 1, 2, 2, 1, -1, -2, -2, -1 };
inline ll exp(ll a,ll b){if(a==0)return 0ll;ll r=1LL;while(b>0){if(b&1){r=r*(a%mod);r=(r+mod)%mod;}b/=2;a=(a%mod)*(a%mod);a=(a+mod)%mod;}return (r+mod)%mod;}
ll gcd(ll a,ll b){if(b==0)return a;if(a==0)return b;return gcd(b,a%b);}
uint32 setbits(ll n){uint32 count=0;while (n){n&=(n-1);count++;}return count; }
// ll f[MAX];
// ll iv[MAX];
// ll C(ll n,ll r){
// if(n<r)return 0;
// ll ans=(f[n]%mod * iv[r]%mod)%mod;
// ans=(ans%mod * iv[n-r]%mod)%mod;
// return ans%mod;
// }
// void init(){
// f[0]=1;
// iv[0]=1;
// f(i,1,MAX)f[i]=(i*f[i-1])%mod;
// iv[MAX-1]=exp(f[MAX-1],mod-2);
// for(int i=MAX-2;i>=0;--i)iv[i]=(iv[i+1]*(i+1))%mod;
// }
vector<ll> generate(vector<int>&a){
int n=a.size();
vector<ll>g1;
for(int i=0;i<(1<<n);i++){
ll sum=0;
for(int j=0;j<n;j++){
if((i&(1<<j))){
sum+=a[j];
}
}
g1.pb(sum);
}
return g1;
}
int main(){
tihs;
fast_io
int n;
cin>>n;
ll W;
cin>>W;
vector<int>g(n);
for(int i=0;i<n;i++)cin>>g[i];
vector<int>g1;
vector<int>g2;
for(int i=0;i<n/2;i++ )g1.pb(g[i]);
for(int i=n/2;i<n;i++)g2.pb(g[i]);
vector<ll>ps1=generate(g1);
vector<ll>ps2= generate(g2);
sort(ps2.begin(),ps2.end());
ll ans=0;
for(int i=0;i<ps1.size();i++){
int nxt= upper_bound(ps2.begin(),ps2.end(),W-ps1[i])-ps2.begin();
nxt--;
if(nxt<0)continue;
ans=max(ans,ps1[i]+ps2[nxt]);
}
cout<<ans<<endl;
}
提出情報
コンパイルエラー
./Main.cpp: In function ‘int main()’:
./Main.cpp:162:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
162 | for(int i=0;i<ps1.size();i++){
| ~^~~~~~~~~~~
./Main.cpp:79:47: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
79 | #define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
./Main.cpp:143:6: note: in expansion of macro ‘tihs’
143 | tihs;
| ^~~~
./Main.cpp:79:80: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
79 | #define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
./Main.cpp:143:6: note: in expansion of macro ‘tihs’
143 | tihs;
| ^~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
600 / 600 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All |
hand_01.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| hand_01.txt |
AC |
4 ms |
3552 KiB |
| random_01.txt |
AC |
2 ms |
3464 KiB |
| random_02.txt |
AC |
2 ms |
3604 KiB |
| random_03.txt |
AC |
4 ms |
3544 KiB |
| random_04.txt |
AC |
2 ms |
3560 KiB |
| random_05.txt |
AC |
1 ms |
3544 KiB |
| random_06.txt |
AC |
2 ms |
3496 KiB |
| random_07.txt |
AC |
2 ms |
3604 KiB |
| random_08.txt |
AC |
3 ms |
3508 KiB |
| random_09.txt |
AC |
2 ms |
3444 KiB |
| random_10.txt |
AC |
2 ms |
3436 KiB |
| random_11.txt |
AC |
3 ms |
3604 KiB |
| random_12.txt |
AC |
10 ms |
3612 KiB |
| random_13.txt |
AC |
59 ms |
6308 KiB |
| random_14.txt |
AC |
2 ms |
3448 KiB |
| random_15.txt |
AC |
2 ms |
3432 KiB |
| random_16.txt |
AC |
2 ms |
3368 KiB |
| random_17.txt |
AC |
2 ms |
3556 KiB |
| random_18.txt |
AC |
2 ms |
3440 KiB |
| random_19.txt |
AC |
16 ms |
3872 KiB |
| random_20.txt |
AC |
59 ms |
6240 KiB |
| random_21.txt |
AC |
4 ms |
3524 KiB |
| random_22.txt |
AC |
61 ms |
6260 KiB |
| random_23.txt |
AC |
259 ms |
23512 KiB |
| random_24.txt |
AC |
261 ms |
23608 KiB |
| random_25.txt |
AC |
261 ms |
23472 KiB |
| random_26.txt |
AC |
262 ms |
23632 KiB |
| random_27.txt |
AC |
425 ms |
23644 KiB |
| random_28.txt |
AC |
212 ms |
23604 KiB |
| random_29.txt |
AC |
211 ms |
23592 KiB |
| random_30.txt |
AC |
214 ms |
23536 KiB |
| sample_01.txt |
AC |
2 ms |
3428 KiB |
| sample_02.txt |
AC |
2 ms |
3508 KiB |
| sample_03.txt |
AC |
2 ms |
3556 KiB |
| sample_04.txt |
AC |
2 ms |
3508 KiB |