提出 #10693038


ソースコード 拡げる

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define fore(i,a) for(auto &i:a)
#define all(x) (x).begin(),(x).end()
//#pragma GCC optimize ("-O3")
using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); }
typedef long long ll; const int inf = INT_MAX / 2; const ll infl = 1LL << 60;
template<class T>bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }
//---------------------------------------------------------------------------------------------------
/*---------------------------------------------------------------------------------------------------
            ∧_∧
      ∧_∧  (´<_` )  Welcome to My Coding Space!
     ( ´_ゝ`) /  ⌒i     @hamayanhamayan0
    /   \     | |
    /   / ̄ ̄ ̄ ̄/  |
  __(__ニつ/     _/ .| .|____
     \/____/ (u ⊃
---------------------------------------------------------------------------------------------------*/














int N, T, A[201010], B[201010];
ll dp[201010][40];
//---------------------------------------------------------------------------------------------------
void _main() {
	cin >> N >> T;
	rep(i, 0, N) cin >> A[i] >> B[i], B[i]++;

	vector<int> one;
	rep(i, 0, N) if (1 <= A[i]) one.push_back(i);
	sort(all(one), [&](int x, int y) { // aybx < axby
		return 1LL * A[y] * B[x] < 1LL * A[x] * B[y];
	});
	int M = one.size();
	rep(i, 0, M + 1) rep(j, 0, 35) dp[i][j] = inf;
	dp[0][0] = 1;
	rep(i, 0, M) rep(j, 0, 35) if (dp[i][j] != inf) {
		int id = one[i];
		chmin(dp[i + 1][j], dp[i][j]);
		chmin(dp[i + 1][j + 1], dp[i][j] + 1LL * A[id] * dp[i][j] + B[id]);
	}

	vector<ll> zeros;
	rep(i, 0, N) if (A[i] == 0) zeros.push_back(B[i]);
	sort(all(zeros));
	int mm = zeros.size();
	rep(i, 1, mm) zeros[i] += zeros[i - 1];
	zeros.push_back(infl);

	int ans = 0;
	rep(cn, 0, 35) if (dp[M][cn] - 1 <= T) {
		ll t = dp[M][cn] - 1;
		int cnt = cn;
		ll rest = T - t;
		int zero = upper_bound(all(zeros), rest) - zeros.begin();
		chmax(ans, cn + zero);
	}
	cout << ans << endl;
}





提出情報

提出日時
問題 D - Manga Market
ユーザ hamayanhamayan
言語 C++14 (GCC 5.4.1)
得点 800
コード長 2390 Byte
結果 AC
実行時間 88 ms
メモリ 65524 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 800 / 800
結果
AC × 4
AC × 81
セット名 テストケース
Sample 00-sample-00, 00-sample-01, 00-sample-02, 00-sample-03
All 00-sample-00, 00-sample-01, 00-sample-02, 00-sample-03, 01-handmade-00, 01-handmade-01, 01-handmade-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 02-small-00, 02-small-01, 02-small-02, 02-small-03, 02-small-04, 02-small-05, 02-small-06, 02-small-07, 02-small-08, 02-small-09, 02-small-10, 02-small-11, 02-small-12, 02-small-13, 02-small-14, 02-small-15, 02-small-16, 02-small-17, 02-small-18, 02-small-19, 03-large-00, 03-large-01, 03-large-02, 03-large-03, 03-large-04, 03-large-05, 03-large-06, 03-large-07, 03-large-08, 03-large-09, 03-large-10, 03-large-11, 03-large-12, 03-large-13, 03-large-14, 04-large2-00, 04-large2-01, 04-large2-02, 04-large2-03, 04-large2-04, 04-large2-05, 04-large2-06, 04-large2-07, 04-large2-08, 04-large2-09, 04-large2-10, 04-large2-11, 04-large2-12, 04-large2-13, 04-large2-14, 05-a01-00, 05-a01-01, 05-a01-02, 05-a01-03, 05-a01-04, 05-a01-05, 05-a01-06, 06-almost_a0-00, 06-almost_a0-01, 06-almost_a0-02, 06-almost_a0-03, 06-almost_a0-04, 06-almost_a0-05, 06-almost_a0-06, 07-a01_almost_a0-00, 07-a01_almost_a0-01, 07-a01_almost_a0-02, 07-a01_almost_a0-03, 07-a01_almost_a0-04, 07-a01_almost_a0-05, 07-a01_almost_a0-06
ケース名 結果 実行時間 メモリ
00-sample-00 AC 2 ms 2304 KiB
00-sample-01 AC 2 ms 2304 KiB
00-sample-02 AC 1 ms 2304 KiB
00-sample-03 AC 2 ms 2304 KiB
01-handmade-00 AC 1 ms 2304 KiB
01-handmade-01 AC 36 ms 5364 KiB
01-handmade-02 AC 84 ms 65524 KiB
01-handmade-03 AC 77 ms 65524 KiB
01-handmade-04 AC 74 ms 65524 KiB
01-handmade-05 AC 66 ms 65524 KiB
02-small-00 AC 2 ms 2304 KiB
02-small-01 AC 2 ms 2304 KiB
02-small-02 AC 2 ms 2304 KiB
02-small-03 AC 2 ms 2304 KiB
02-small-04 AC 2 ms 2304 KiB
02-small-05 AC 2 ms 2304 KiB
02-small-06 AC 2 ms 2304 KiB
02-small-07 AC 2 ms 2304 KiB
02-small-08 AC 2 ms 2304 KiB
02-small-09 AC 2 ms 2304 KiB
02-small-10 AC 1 ms 2304 KiB
02-small-11 AC 2 ms 2304 KiB
02-small-12 AC 2 ms 2304 KiB
02-small-13 AC 1 ms 2304 KiB
02-small-14 AC 2 ms 2304 KiB
02-small-15 AC 2 ms 2304 KiB
02-small-16 AC 2 ms 2304 KiB
02-small-17 AC 2 ms 2304 KiB
02-small-18 AC 2 ms 2304 KiB
02-small-19 AC 2 ms 2304 KiB
03-large-00 AC 27 ms 23420 KiB
03-large-01 AC 40 ms 31736 KiB
03-large-02 AC 3 ms 3200 KiB
03-large-03 AC 87 ms 65524 KiB
03-large-04 AC 13 ms 12928 KiB
03-large-05 AC 79 ms 59124 KiB
03-large-06 AC 41 ms 31864 KiB
03-large-07 AC 88 ms 65524 KiB
03-large-08 AC 64 ms 48628 KiB
03-large-09 AC 62 ms 46452 KiB
03-large-10 AC 19 ms 17148 KiB
03-large-11 AC 23 ms 19196 KiB
03-large-12 AC 25 ms 21244 KiB
03-large-13 AC 39 ms 31736 KiB
03-large-14 AC 26 ms 21372 KiB
04-large2-00 AC 25 ms 23420 KiB
04-large2-01 AC 63 ms 52724 KiB
04-large2-02 AC 58 ms 48628 KiB
04-large2-03 AC 68 ms 56948 KiB
04-large2-04 AC 21 ms 19196 KiB
04-large2-05 AC 2 ms 3072 KiB
04-large2-06 AC 56 ms 46452 KiB
04-large2-07 AC 13 ms 12928 KiB
04-large2-08 AC 4 ms 4352 KiB
04-large2-09 AC 18 ms 17148 KiB
04-large2-10 AC 36 ms 31736 KiB
04-large2-11 AC 6 ms 6528 KiB
04-large2-12 AC 43 ms 35960 KiB
04-large2-13 AC 80 ms 65524 KiB
04-large2-14 AC 39 ms 33912 KiB
05-a01-00 AC 19 ms 13312 KiB
05-a01-01 AC 28 ms 17788 KiB
05-a01-02 AC 2 ms 2816 KiB
05-a01-03 AC 61 ms 35448 KiB
05-a01-04 AC 10 ms 8832 KiB
05-a01-05 AC 55 ms 33144 KiB
05-a01-06 AC 29 ms 17788 KiB
06-almost_a0-00 AC 12 ms 3580 KiB
06-almost_a0-01 AC 28 ms 6004 KiB
06-almost_a0-02 AC 26 ms 5876 KiB
06-almost_a0-03 AC 31 ms 6132 KiB
06-almost_a0-04 AC 10 ms 3452 KiB
06-almost_a0-05 AC 2 ms 2432 KiB
06-almost_a0-06 AC 28 ms 5876 KiB
07-a01_almost_a0-00 AC 11 ms 3580 KiB
07-a01_almost_a0-01 AC 16 ms 4344 KiB
07-a01_almost_a0-02 AC 2 ms 2432 KiB
07-a01_almost_a0-03 AC 32 ms 6516 KiB
07-a01_almost_a0-04 AC 6 ms 2944 KiB
07-a01_almost_a0-05 AC 30 ms 6260 KiB
07-a01_almost_a0-06 AC 17 ms 4472 KiB