提出 #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;









      }

提出情報

提出日時
問題 F - Programming Contest
ユーザ pro_30
言語 C++ (GCC 9.2.1)
得点 600
コード長 5581 Byte
結果 AC
実行時間 425 ms
メモリ 23644 KiB

コンパイルエラー

./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
結果
AC × 4
AC × 35
セット名 テストケース
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