Sponsors

Codeforces Round #378 (Div. 2), problem: (E) Sleep in Class Solution in C

#include
#define ABS(a) ((a) < 0 ? (a) : (a)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b))
#define TRUE 1
#define FALSE 0

#define getchar_unlocked() getchar()

long long fast_in()
{
static long long j_fast;
static char c_fast;
j_fast = 0;
c_fast = getchar_unlocked();
while (c_fast < '0' || c_fast > ‘9’)
c_fast = getchar_unlocked();
while (c_fast >= ‘0’ && c_fast <= '9') { j_fast = (j_fast << 1) + (j_fast << 3) + c_fast - '0'; c_fast = getchar_unlocked(); } return j_fast; } #define MAXN 1000006 long long n, a[MAXN], ans[MAXN], down[MAXN], up[MAXN], wdown[MAXN], wup[MAXN]; long long binary_search_up(long long req) { // search for last occurance static long long f, l, m; f = 1; l = n + 1; while ((l - f) > 1) {
m = ((l + f) >> 1);
if (up[m] >= req)
f = m;
else
l = m;
}
if (up[l] == req)
return l;
else
return f;
}
long long binary_search_down(long long req)
{
// search for first occurance
static long long f, l, m;
f = 0;
l = n;
while ((l – f) > 1) {
m = ((l + f) >> 1);
if (down[m] < req) f = m; else l = m; } if (down[f] == req) return f; else return l; } int main() { static long long i, considered, uptill, downtill; static char c; n = fast_in(); for (i = 1; i <= n; i++) { c = getchar_unlocked(); if (c == 'U') a[i] = 1; else a[i] = 0; } for (i = 1; i <= n; i++) { if (a[i]) down[i] = down[i - 1]; else down[i] = down[i - 1] + 1; } for (i = 0; i <= n; i++) { if (a[i]) wdown[i] = wdown[i - 1]; else wdown[i] = wdown[i - 1] + i; } for (i = n; i > 0; i–) {
if (a[i])
up[i] = up[i + 1] + 1;
else
up[i] = up[i + 1];
}
for (i = n; i > 0; i–) {
if (a[i])
wup[i] = wup[i + 1] + (n – i + 1);
else
wup[i] = wup[i + 1];
}
up[0] = up[1];
wup[0] = wup[1];
down[n + 1] = down[n];
wdown[n + 1] = wdown[n];
// for (i = 0; i <= n + 1; i++) { // printf("%lld %lld %lld %lld\n", up[i], down[i], wup[i], // wdown[i]); // } for (i = 1; i <= n; i++) { considered = MIN(up[0] - up[i], down[n] - down[i]); if (a[i]) { downtill = binary_search_down(considered + down[i] + 1); uptill = binary_search_up(considered + up[i]); } else { downtill = binary_search_down(considered + down[i]); uptill = binary_search_up(considered + up[i] + 1); } ans[i] = (wdown[downtill] - wdown[i] - i * (down[downtill] - down[i])); ans[i] += (wup[uptill] - wup[i] - (n - i + 1) * (up[uptill] - up[i])); ans[i] <<= 1; //printf("%lld considered %lld downtill %lld uptill %lld\n", i, // considered, downtill, uptill); if (a[i]) { if ((down[n] - down[i]) > (up[0] – up[i]))
ans[i] += i;
else
ans[i] += (n – i + 1);
} else {
if ((down[n] – down[i]) >= (up[0] – up[i]))
ans[i] += i;
else
ans[i] += (n – i + 1);
}
}
for (i = 1; i <= n; i++) printf("%lld ", ans[i]); return 0; }

Quick News: Red, Custom,...

President Claremont and King James III Return: 'Red, White...

AGI Needs World Models...

Demis Hassabis: AGI Requires 'World Models,' LLMs Alone Are...

PM gives management masterclass...

The Art of Obfuscation: Deconstructing the Lexicology of ‘Luxonese’ In...

Drew Gill Wins MLF...

Drew Gill Dominates Lake Guntersville, Securing MLF Bass Pro...

San Francisco firefighters rally...

San Francisco Firefighters Rally Against Blue Shield for Denying...

Mike Flanagan’s ‘The Exorcist’...

Universal Delays Mike Flanagan's 'The Exorcist' Reboot to 2027 Horror...

Quick News: Red, Custom, Fix, Bambo, Kenan

President Claremont and King James III Return: 'Red, White & Royal Wedding' Sequel Confirmed Fans of the beloved romantic comedy Red, White & Royal Blue...

AGI Needs World Models and State of World Models

Demis Hassabis: AGI Requires 'World Models,' LLMs Alone Are Not Enough In the fiercely competitive race toward Artificial General Intelligence (AGI), the CEOs of leading...

PM gives management masterclass in the lexicology of Luxonese

The Art of Obfuscation: Deconstructing the Lexicology of ‘Luxonese’ In the high-stakes arena of modern governance, the way a leader communicates is often as important...

Drew Gill Wins MLF Bass Pro Tour B&W Trailer Hitches Stage 1 on Lake Guntersville Presented by Mercury

Drew Gill Dominates Lake Guntersville, Securing MLF Bass Pro Tour Stage 1 Victory The 2026 Major League Fishing (MLF) season kicked off with a stunning...

San Francisco firefighters rally for retiree denied cancer treatment by Blue Shield as more patients come forward

San Francisco Firefighters Rally Against Blue Shield for Denying Cancer Care to Retired Colleague The steps of San Francisco City Hall recently became the stage...

Mike Flanagan’s ‘The Exorcist’ Movie Starring Scarlett Johansson Pushed To 2027

Universal Delays Mike Flanagan's 'The Exorcist' Reboot to 2027 Horror fans anticipating Mike Flanagan's take on one of cinema's most terrifying properties will have to...

Prioritizing Early Warning Systems for a Resilient Nepal

Prioritizing Early Warning Systems for a Resilient Nepal The urgency surrounding disaster preparedness in Nepal is not a new phenomenon. While modern technology offers sophisticated...

Primientプリミエント、プリミエント・コベーションの完全所有権を取得

Primient Solidifies Market Position by Acquiring Full Ownership of Primient Covation In a significant move poised to reshape the landscape of sustainable ingredient solutions, Primient,...

MAGA Thinks Maduro Will Prove Trump Won in 2020

Why MAGA Circles Think Nicolás Maduro Holds the Key to the 2020 Election The realm of political conspiracy theories often sees familiar ghosts resurrected when...