Submission #65067416


Source Code Expand

#define DEBUG 0

#include <bits/stdc++.h>
using namespace std;

#if DEBUG
// basic debugging macros
int __i__,__j__;
#define printLine(l) for(__i__=0;__i__<l;__i__++){cout<<"-";}cout<<endl
#define printLine2(l,c) for(__i__=0;__i__<l;__i__++){cout<<c;}cout<<endl
#define printVar(n) cout<<#n<<": "<<n<<endl
#define printArr(a,l) cout<<#a<<": ";for(__i__=0;__i__<l;__i__++){cout<<a[__i__]<<" ";}cout<<endl
#define print2dArr(a,r,c) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<a[__i__][__j__]<<" ";}cout<<endl;}
#define print2dArr2(a,r,c,l) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<setw(l)<<setfill(' ')<<a[__i__][__j__]<<" ";}cout<<endl;}

// advanced debugging class
// debug 1,2,'A',"test";
class _Debug {
    public:
        template<typename T>
        _Debug& operator,(T val) {
            cout << val << endl;
            return *this;
        }
};
#define debug _Debug(),
#else
#define printLine(l)
#define printLine2(l,c)
#define printVar(n)
#define printArr(a,l)
#define print2dArr(a,r,c)
#define print2dArr2(a,r,c,l)
#define debug
#endif

// define
#define MAX_VAL 999999999
#define MAX_VAL_2 999999999999999999LL
#define EPS 1e-6
#define mp make_pair
#define pb push_back

// typedef
typedef unsigned int UI;
typedef long long int LLI;
typedef unsigned long long int ULLI;
typedef unsigned short int US;
typedef pair<int,int> pii;
typedef pair<LLI,LLI> plli;
typedef vector<int> vi;
typedef vector<LLI> vlli;
typedef vector<pii> vpii;
typedef vector<plli> vplli;

// ---------- END OF TEMPLATE ----------
#define x first
#define y second

vi v;
vplli L,R;
int ccw(plli a,plli b,plli c) {
    return (__int128) (b.x-a.x)*(c.y-a.y) >= (__int128) (b.y-a.y)*(c.x-a.x);
}
vplli parHull(vplli v) {
    vplli hull;
    sort(v.begin(),v.end());
    for (auto p: v) {
        if (!hull.empty() && (p.x == hull.back().x)) continue;
        while (!hull.empty() && (p.y == hull.back().y)) hull.pop_back();
        hull.pb(p);
    }
    return hull;
}
LLI f[3000005];
typedef long long ll;
struct Line {
	mutable ll k, m, p;
	bool operator<(const Line& o) const { return k < o.k; }
	bool operator<(ll x) const { return p < x; }
};

struct LineContainer : multiset<Line, less<>> {
	// (for doubles, use inf = 1/.0, div(a,b) = a/b)
	static const ll inf = LLONG_MAX;
	ll div(ll a, ll b) { // floored division
		return a / b - ((a ^ b) < 0 && a % b); }
	bool isect(iterator x, iterator y) {
		if (y == end()) return x->p = inf, 0;
		if (x->k == y->k) x->p = x->m > y->m ? inf : -inf;
		else x->p = div(y->m - x->m, x->k - y->k);
		return x->p >= y->p;
	}
	void add(ll k, ll m) {
		auto z = insert({k, m, 0}), y = z++, x = y;
		while (isect(y, z)) z = erase(z);
		if (x != begin() && isect(--x, y)) isect(x, y = erase(y));
		while ((y = x) != begin() && (--x)->p >= y->p)
			isect(x, erase(y));
	}
	ll query(ll x) {
		assert(!empty());
		auto l = *lower_bound(x);
		return l.k * x + l.m;
	}
};
int main() {
    int N,K;
    string S;
    cin >> N >> K >> S;

    int i,c = 0;
    LLI area = 0;
    L.pb(mp(0,0));
    for (i = 0; i < S.size(); i++) {
        int o = c;
        c += (S[i] == 'A') ? 1:-1;
        if (o < 0) area += (-o+1)/2;
        if (o > 0) f[o-1]++;
        if (c >= 0) L.pb(mp(c,area));
    }
    c = area = 0;
    R.pb(mp(0,0));
    reverse(S.begin(),S.end());
    for (i = 0; i < S.size(); i++) {
        int o = c;
        c += (S[i] == 'C') ? 1:-1;
        if (o < 0) area += (-o+1)/2;
        if (c >= 0) R.pb(mp(c,area));
    }
    for (i = N+2; i >= 0; i--) f[i] += f[i+2];
    for (i = N+2; i >= 0; i--) f[i] += f[i+1];

    L = parHull(L),R = parHull(R);
    LineContainer hull;
    for (plli a: L) {
        for (plli b: R) {
            hull.add(-f[a.x+b.x],-(a.y+b.y));
        }
    }

    for (i = 1; i <= K; i++) printf("%lld\n",-hull.query(i));
    
    return 0;
}

Submission Info

Submission Time
Task B - AGC Language
User duality
Language C++ 20 (gcc 12.2)
Score 1100
Code Size 4018 Byte
Status AC
Exec Time 555 ms
Memory 106956 KiB

Compile Error

Main.cpp: In function ‘int main()’:
Main.cpp:115:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  115 |     for (i = 0; i < S.size(); i++) {
      |                 ~~^~~~~~~~~~
Main.cpp:125:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  125 |     for (i = 0; i < S.size(); i++) {
      |                 ~~^~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1100 / 1100
Status
AC × 5
AC × 140
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt
All 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 04-01.txt, 04-02.txt, 04-03.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, 05-06.txt, 05-07.txt, 05-08.txt, 06-01.txt, 06-02.txt, 06-03.txt, 06-04.txt, 06-05.txt, 06-06.txt, 06-07.txt, 06-08.txt, 06-09.txt, 06-10.txt, 06-11.txt, 06-12.txt, 06-13.txt, 06-14.txt, 06-15.txt, 06-16.txt, 06-17.txt, 06-18.txt, 06-19.txt, 06-20.txt, 06-21.txt, 06-22.txt, 07-01.txt, 07-02.txt, 07-03.txt, 07-04.txt, 07-05.txt, 07-06.txt, 07-07.txt, 07-08.txt, 07-09.txt, 07-10.txt, 07-11.txt, 07-12.txt, 07-13.txt, 07-14.txt, 07-15.txt, 07-16.txt, 08-01.txt, 08-02.txt, 08-03.txt, 08-04.txt, 08-05.txt, 08-06.txt, 08-07.txt, 08-08.txt, 08-09.txt, 08-10.txt, 09-01.txt, 09-02.txt, 09-03.txt, 09-04.txt, 09-05.txt, 09-06.txt, 09-07.txt, 09-08.txt, 09-09.txt, 09-10.txt, 10-01.txt, 10-02.txt, 10-03.txt, 10-04.txt, 10-05.txt, 10-06.txt, 11-01.txt, 11-02.txt, 11-03.txt, 11-04.txt, 12-01.txt, 12-02.txt, 12-03.txt, 12-04.txt, 12-05.txt, 12-06.txt, 12-07.txt, 12-08.txt, 12-09.txt, 12-10.txt, 12-11.txt, 12-12.txt, 12-13.txt, 12-14.txt, 12-15.txt, 12-16.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 3620 KiB
01-02.txt AC 1 ms 3824 KiB
01-03.txt AC 15 ms 3628 KiB
01-04.txt AC 15 ms 3628 KiB
01-05.txt AC 15 ms 3636 KiB
01-06.txt AC 15 ms 3684 KiB
01-07.txt AC 15 ms 3628 KiB
01-08.txt AC 15 ms 3584 KiB
01-09.txt AC 15 ms 3624 KiB
01-10.txt AC 15 ms 3760 KiB
02-01.txt AC 15 ms 3572 KiB
02-02.txt AC 15 ms 3768 KiB
02-03.txt AC 15 ms 3768 KiB
02-04.txt AC 17 ms 3772 KiB
02-05.txt AC 165 ms 50532 KiB
02-06.txt AC 277 ms 95904 KiB
02-07.txt AC 47 ms 13112 KiB
02-08.txt AC 47 ms 13104 KiB
02-09.txt AC 49 ms 13100 KiB
02-10.txt AC 48 ms 13112 KiB
02-11.txt AC 53 ms 13628 KiB
02-12.txt AC 99 ms 29696 KiB
02-13.txt AC 208 ms 71240 KiB
02-14.txt AC 260 ms 87220 KiB
02-15.txt AC 223 ms 73556 KiB
02-16.txt AC 112 ms 36032 KiB
02-17.txt AC 149 ms 43720 KiB
02-18.txt AC 171 ms 52580 KiB
02-19.txt AC 204 ms 72220 KiB
02-20.txt AC 295 ms 105632 KiB
02-21.txt AC 287 ms 99788 KiB
02-22.txt AC 353 ms 106652 KiB
02-23.txt AC 524 ms 106720 KiB
02-24.txt AC 542 ms 106880 KiB
02-25.txt AC 532 ms 106956 KiB
03-01.txt AC 478 ms 106828 KiB
03-02.txt AC 70 ms 18932 KiB
03-03.txt AC 346 ms 106356 KiB
03-04.txt AC 293 ms 91048 KiB
03-05.txt AC 132 ms 42500 KiB
04-01.txt AC 205 ms 44356 KiB
04-02.txt AC 205 ms 44232 KiB
04-03.txt AC 204 ms 44364 KiB
05-01.txt AC 299 ms 83308 KiB
05-02.txt AC 300 ms 76972 KiB
05-03.txt AC 295 ms 73692 KiB
05-04.txt AC 270 ms 71160 KiB
05-05.txt AC 238 ms 61836 KiB
05-06.txt AC 221 ms 83400 KiB
05-07.txt AC 277 ms 73812 KiB
05-08.txt AC 268 ms 71400 KiB
06-01.txt AC 477 ms 106652 KiB
06-02.txt AC 475 ms 105556 KiB
06-03.txt AC 430 ms 95696 KiB
06-04.txt AC 216 ms 48816 KiB
06-05.txt AC 99 ms 23784 KiB
06-06.txt AC 61 ms 15416 KiB
06-07.txt AC 55 ms 13656 KiB
06-08.txt AC 263 ms 59980 KiB
06-09.txt AC 446 ms 99944 KiB
06-10.txt AC 432 ms 97444 KiB
06-11.txt AC 312 ms 73104 KiB
06-12.txt AC 458 ms 101200 KiB
06-13.txt AC 450 ms 100656 KiB
06-14.txt AC 320 ms 74060 KiB
06-15.txt AC 323 ms 73984 KiB
06-16.txt AC 371 ms 84176 KiB
06-17.txt AC 355 ms 81648 KiB
06-18.txt AC 342 ms 79452 KiB
06-19.txt AC 335 ms 77432 KiB
06-20.txt AC 316 ms 75924 KiB
06-21.txt AC 303 ms 77148 KiB
06-22.txt AC 280 ms 84604 KiB
07-01.txt AC 253 ms 74356 KiB
07-02.txt AC 260 ms 78200 KiB
07-03.txt AC 341 ms 82124 KiB
07-04.txt AC 244 ms 73168 KiB
07-05.txt AC 117 ms 34028 KiB
07-06.txt AC 209 ms 71160 KiB
07-07.txt AC 285 ms 72428 KiB
07-08.txt AC 120 ms 33992 KiB
07-09.txt AC 210 ms 71012 KiB
07-10.txt AC 287 ms 72296 KiB
07-11.txt AC 124 ms 33660 KiB
07-12.txt AC 210 ms 70932 KiB
07-13.txt AC 297 ms 72044 KiB
07-14.txt AC 106 ms 25884 KiB
07-15.txt AC 196 ms 57752 KiB
07-16.txt AC 277 ms 70720 KiB
08-01.txt AC 549 ms 106908 KiB
08-02.txt AC 549 ms 106940 KiB
08-03.txt AC 555 ms 106868 KiB
08-04.txt AC 48 ms 13116 KiB
08-05.txt AC 47 ms 13020 KiB
08-06.txt AC 541 ms 106836 KiB
08-07.txt AC 51 ms 13100 KiB
08-08.txt AC 536 ms 106840 KiB
08-09.txt AC 249 ms 91204 KiB
08-10.txt AC 205 ms 75560 KiB
09-01.txt AC 15 ms 3760 KiB
09-02.txt AC 15 ms 3620 KiB
09-03.txt AC 15 ms 3692 KiB
09-04.txt AC 16 ms 3756 KiB
09-05.txt AC 15 ms 3832 KiB
09-06.txt AC 15 ms 3624 KiB
09-07.txt AC 15 ms 3832 KiB
09-08.txt AC 15 ms 3632 KiB
09-09.txt AC 15 ms 3760 KiB
09-10.txt AC 15 ms 3760 KiB
10-01.txt AC 300 ms 76112 KiB
10-02.txt AC 247 ms 81284 KiB
10-03.txt AC 233 ms 83268 KiB
10-04.txt AC 298 ms 76060 KiB
10-05.txt AC 247 ms 81264 KiB
10-06.txt AC 234 ms 83432 KiB
11-01.txt AC 50 ms 13060 KiB
11-02.txt AC 51 ms 13024 KiB
11-03.txt AC 52 ms 13456 KiB
11-04.txt AC 54 ms 14300 KiB
12-01.txt AC 328 ms 83420 KiB
12-02.txt AC 403 ms 100876 KiB
12-03.txt AC 276 ms 73956 KiB
12-04.txt AC 165 ms 43440 KiB
12-05.txt AC 125 ms 34140 KiB
12-06.txt AC 307 ms 75940 KiB
12-07.txt AC 100 ms 25088 KiB
12-08.txt AC 81 ms 19828 KiB
12-09.txt AC 67 ms 17416 KiB
12-10.txt AC 289 ms 73884 KiB
12-11.txt AC 95 ms 23756 KiB
12-12.txt AC 84 ms 20660 KiB
12-13.txt AC 68 ms 17384 KiB
12-14.txt AC 63 ms 15876 KiB
12-15.txt AC 61 ms 15556 KiB
12-16.txt AC 57 ms 13988 KiB
sample-01.txt AC 1 ms 3636 KiB
sample-02.txt AC 1 ms 3828 KiB
sample-03.txt AC 1 ms 3624 KiB
sample-04.txt AC 1 ms 3776 KiB
sample-05.txt AC 1 ms 3584 KiB