Submission #12183786


Source Code Expand

/*---> 21 April 2020 <--- > 04:42:50 <---*/
// #pragma GCC optimize("Ofast")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
// #pragma GCC optimize("unroll-loops")
// #pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("O3")
//#pragma GCC target ("sse4")
#include <bits/stdc++.h>
//#include <ext/pb_ds/tree_policy.hpp>
//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;
using namespace std;
//template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>;
#define int long long
#define F first
#define S second
#define mod 1000000007
#define inf (int)1e12+5
#define sz(x) (int)x.size()
#define PI 3.141592653589793238510
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define __ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define vi vector<int>
#define vpii vector<pair<int,int> > 
#define vvi vector<vector<int> >
#define PRINT_TIME cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s." <<endl;
#define sim template < class c
#define ris return * this
#define dor > debug & operator <<
#define eni(x) sim > typename   enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) {
sim > struct rge { c b, e; };
sim > rge<c> range(c i, c j) { return rge<c>{i, j}; }
sim > auto dud(c* x) -> decltype(cerr << *x, 0);
sim > char dud(...);
struct debug {
#ifdef LOCAL
~debug() { cerr << endl; }
eni(!=) cerr << boolalpha << i; ris; }
eni(==) ris << range(begin(i), end(i)); }
sim, class b dor(pair < b, c > d) {
  ris << "(" << d.first << ", " << d.second << ")";
}
sim dor(rge<c> d) {
  *this << "[";
  for (auto it = d.b; it != d.e; ++it)
    *this << ", " + 2 * (it == d.b) << *it;
  ris << "]";
}
#else
sim dor(const c&) { ris; }
#endif
};
#define imie(...) " [" << #__VA_ARGS__ ": " << (__VA_ARGS__) << "] "
typedef long double ld;
typedef pair<int,int> pii;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
const int N=1e2+5;
int n,W;
int v[N],w[N],dp[N][100001];
int solve(int ind,int V){
    if(V<0)
        return inf;
    int &ans=dp[ind][V];
    if(ans!=-1)
        return ans;
    if(ind==n){
        if(V==0)
            return ans=0;
        else
            return ans=inf;
    }
    else
        return ans=min(w[ind]+solve(ind+1,V-v[ind]),solve(ind+1,V));
}
int32_t main(){__
    cin>>n>>W;
    for(int i=0;i<n;i++){
        cin>>w[i]>>v[i];
    }
    memset(dp,-1,sizeof dp);
    for(int i=100000;i>=0;i--){
        if(solve(0,i)<=W)
            return cout<<i<<"\n",0;
    }
return 0;
}

Submission Info

Submission Time
Task E - Knapsack 2
User praveenojha33
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2812 Byte
Status AC
Exec Time 130 ms
Memory 82304 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 21
Set Name Test Cases
All 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17
Case Name Status Exec Time Memory
0_00 AC 22 ms 82304 KiB
0_01 AC 22 ms 82304 KiB
0_02 AC 24 ms 82304 KiB
1_00 AC 22 ms 82304 KiB
1_01 AC 21 ms 82304 KiB
1_02 AC 128 ms 82304 KiB
1_03 AC 130 ms 82304 KiB
1_04 AC 127 ms 82304 KiB
1_05 AC 126 ms 82304 KiB
1_06 AC 127 ms 82304 KiB
1_07 AC 124 ms 82304 KiB
1_08 AC 124 ms 82304 KiB
1_09 AC 121 ms 82304 KiB
1_10 AC 121 ms 82304 KiB
1_11 AC 117 ms 82304 KiB
1_12 AC 114 ms 82304 KiB
1_13 AC 105 ms 82304 KiB
1_14 AC 107 ms 82304 KiB
1_15 AC 89 ms 82304 KiB
1_16 AC 105 ms 82304 KiB
1_17 AC 78 ms 82304 KiB