Sponsors

Codeforces Round #378 (Div. 2), Problem: (C) Epidemic in Monstropolis Solution in C

Hi guys , i just tried the Epidemic in Monstropolis problem , hope you might like it .

#include
#include

#define MAXN 500
int a[MAXN];
int b[MAXN];
int partial_sums[MAXN];
unsigned char d[MAXN + 1][MAXN + 1];
unsigned char equals[MAXN + 1][MAXN + 1];
int ans[MAXN + 1][MAXN + 1];
int n, k;
int i, j, r, t;

int dif[2];
int order[2];
char symbol[2];

int main(int argc, char *argv[]) {

#ifndef ONLINE_JUDGE
freopen(“input.txt”, “r”, stdin);
//freopen(“output.txt”, “w”, stdout);
#endif
// read and init data
scanf(“%d”, &n);
for (i = 0; i < n; ++i) { scanf("%d", &a[i]); } scanf("%d", &k); for (i = 0; i < k; ++i) { scanf("%d", &b[i]); } partial_sums[0] = a[0]; for (i = 1; i < n; ++i) { partial_sums[i] = partial_sums[i - 1] + a[i]; } d[0][0] = 1; for (i = 0; i < n; ++i) { equals[i][i] = 1; } for (i = 2; i <= n; ++i) { for (j = 0; j <= n - i; ++j) { equals[j][j + i - 1] = (equals[j][j + i - 2] && (a[j + i - 1] == a[j])); } } // dynamic programming for (i = 1; i <= n; ++i) { int border = k; if (i < k) { border = i; } for (j = 1; j <= border; ++j) { // int border2 = i - j + 1; for (r = 1; r <= i; ++r) { int sub_sum = partial_sums[i - 1] - partial_sums[i - r] + a[i - r]; unsigned char can_be_used = ((r == 1) || !equals[i - r][i - 1]); unsigned char check = (can_be_used && (sub_sum == b[j - 1])); if (d[i - r][j - 1] && check) { d[i][j] = 1; ans[i][j] = r; break; } } } } if (!d[n][k]) { printf("NO\n"); } else { printf("YES\n"); int curn = n; int curk = k; while (curn > 0) {
// print result
int maxval = -1;
int maxindx = curn;

for (i = curn – ans[curn][curk] + 1; i <= curn; ++i) { if (a[i - 1] > maxval) {
maxval = a[i – 1];
maxindx = i;
}
}

int left_cnt = maxindx – curn + ans[curn][curk] – 1;
int right_cnt = curn – maxindx;

dif[0] = 0; dif[1] = -1;
order[0] = right_cnt; order[1] = left_cnt;
symbol[0] = ‘R’; symbol[1] = ‘L’;

if (left_cnt == 0) {
while (maxindx < curn && a[maxindx] == maxval) { maxindx++; left_cnt++; right_cnt--; } dif[0] = 0; dif[1] = -1; order[0] = right_cnt; order[1] = left_cnt; symbol[0] = 'R'; symbol[1] = 'L'; } else if (right_cnt == 0 || a[maxindx] == a[maxindx - 1]) { dif[0] = -1; dif[1] = 0; order[0] = left_cnt; order[1] = right_cnt; symbol[0] = 'L'; symbol[1] = 'R'; } for (j = 0; j < 2; ++j) { for (i = 0; i < order[j]; ++i) { printf("%d %c\n", maxindx, symbol[j]); maxindx += dif[j]; } } curn -= ans[curn][curk]; curk -= 1; } } return 0; }

Swim warning at all...

Urgent Health Advisory: High Bacteria Levels at LA County...

Remember James Van Der...

Remembering James Van Der Beek: A Legacy of Talent...

vibefoundry 0.1.90

Vibefoundry 0.1.90: Revolutionizing Local Data Science Workflows The data science...

TRENDS Unifies 50+ Systems...

TRENDS Collaborates with Boomi to Revolutionize Manufacturing with AI...

Does eating sugar make...

The Sweet Myth: Does Sugar Consumption Attract Mosquitoes? As the...

Do cockroaches nest in...

The Truth About Cockroaches Nesting in Your Bed It’s one...

Swim warning at all LA County beaches as bacteria levels spike

Urgent Health Advisory: High Bacteria Levels at LA County Beaches Residents and visitors in Southern California are being urged to stay out of the water...

Remember James Van Der Beek by Streaming Dawson’s Creek and His Other Roles

Remembering James Van Der Beek: A Legacy of Talent and Heart The entertainment world is currently in mourning following the heartbreaking news that James Van...

vibefoundry 0.1.90

Vibefoundry 0.1.90: Revolutionizing Local Data Science Workflows The data science landscape is constantly evolving, requiring tools that can keep pace with increasingly complex workflows. The...

TRENDS Unifies 50+ Systems to Build AI-Ready Manufacturing Backbone

TRENDS Collaborates with Boomi to Revolutionize Manufacturing with AI Integration In a significant move toward digital modernization, TRENDS Promotional Products has successfully leveraged the Boomi...

Does eating sugar make mosquitoes worse?

The Sweet Myth: Does Sugar Consumption Attract Mosquitoes? As the summer heat rolls in, so do the mosquitoes. For years, a popular piece of folklore...

Do cockroaches nest in beds?

The Truth About Cockroaches Nesting in Your Bed It’s one of the most unsettling thoughts imaginable: finding pests in the place you seek rest and...

Hollywood’s AI Bet Isn’t Paying Off

Why Hollywood's Big Bet on AI Is Turning into a Box Office Flop The convergence of Artificial Intelligence and cinema was once touted as the...

How far can a buck smell?

The Scent-Sational Truth: How Far Can a Buck Smell? For wildlife enthusiasts and dedicated hunters, understanding the sensory world of the whitetail deer is crucial....

Google’s Gemini 3 Release Won Over More Than 100 Million New Active Users

Google Gemini 3 Racks Up 100 Million New Active Users, Challenging ChatGPT's Dominance The artificial intelligence landscape is witnessing a seismic shift, confirmed by new...