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; }

Charles Cross agrees to...

Charles Cross Secures Future with Massive Four-Year Extension with...

Samsung Display Unveils New...

Samsung Display Prepares to Dazzle CES 2026 with Next-Gen...

What do male octopus...

The Fateful Finale: What Happens to Male Octopuses After...

From Broadway to Banana...

The Ultimate Crossover: Broadway Star Derek Klena Joins the...

Stock Market Highlights 1...

A Flat Start to the New Year: Sensex and...

Why the Mineral Resources...

The Forces Behind Mineral Resources’ 10% Share Price Surge Shareholders...

Charles Cross agrees to four-year extension with Seahawks

Charles Cross Secures Future with Massive Four-Year Extension with Seahawks The Seattle Seahawks organization demonstrated its commitment to building a formidable foundation by securing one...

Samsung Display Unveils New OLED Tech for Robots & Wearables at CES 2026

Samsung Display Prepares to Dazzle CES 2026 with Next-Gen OLED Innovations As the tech world gears up for CES 2026, all eyes are turning toward...

What do male octopus do after mating?

The Fateful Finale: What Happens to Male Octopuses After Mating? The ocean is home to countless wonders, but few natural phenomena are as dramatically tragic...

From Broadway to Banana Ball! Derek Klena Joins Savannah Bananas in Viral Baseball League

The Ultimate Crossover: Broadway Star Derek Klena Joins the Savannah Bananas In a surprising twist that perfectly captures the unique spirit of the viral baseball...

Stock Market Highlights 1 January 2026: Sensex, Nifty close flat on first trading day of new year

A Flat Start to the New Year: Sensex and Nifty End January 1, 2026 Trading Muted The dawn of the new year, January 1, 2026,...

Why the Mineral Resources share price is up 10% in a month

The Forces Behind Mineral Resources’ 10% Share Price Surge Shareholders of Mineral Resources Ltd (ASX: MIN) are breathing a collective sigh of relief, if not...

Personal Injury Attorneys Ross Cellino and Timothy Cellino of Buffalo, NY, Break Down Construction Site Accidents for HelloNation

Buffalo Lawyers Ross and Timothy Cellino Detail the Risks of Construction Site Accidents Construction sites, while essential for urban development, remain some of the most...

War on drug resistance goes undersea

The Deep Sea: The New Battlefield Against Superbugs Antimicrobial Resistance (AMR) is unequivocally one of the most pressing global health crises of our time. As...

Supreme Court takes suo motu cognisance of concerns surrounding definition of Aravalli range

Supreme Court Intervenes Over Controversial Aravalli Range Definition In a significant move highlighting the escalating concerns over environmental protection, the Supreme Court of India has...