Codeforces Round #378 (Div. 2), problem: (D) Kostya the Sculptor Solution In C

#include
#include

#define N 100000
#define M 1000000007
#define MIN(A, B) ((A) < (B) ? (A) : (B)) int i1, i2, k; double max; struct item { int i, a, b, c; struct item *next; } *ht[N]; int hash(int a, int b) { long long hash = (11LL * ((71LL * a) + b)) % M; return (313LL * hash + 11LL) % M % N; } struct item *getkey(int a, int b) { int h = hash(a, b); struct item *x; for (x = ht[h]; x != NULL; x = x->next)
if (x->a == a && x->b == b)
return x;
return NULL;
}

void put(int i, int a, int b, int c) {
struct item *x = getkey(a, b);

if (x == NULL) {
int h = hash(a, b);

x = malloc(sizeof(*x));
x->a = a;
x->b = b;
x->c = 0;
x->next = ht[h];
ht[h] = x;
}
if (x->c < c) { x->i = i;
x->c = c;
}
}

void get(int i, int a, int b, int c) {
struct item *x;
int a_, b_, c_, two;
double min;

if ((x = getkey(a, b)) != NULL) {
a_ = a;
b_ = b;
c_ = c + x->c;
min = MIN(a_, MIN(b_, c_)) / 2.0;
two = 1;
} else {
a_ = a;
b_ = b;
c_ = c;
min = MIN(a_, MIN(b_, c_)) / 2.0;
two = 0;
}
if (max < min) { max = min; if (two) { k = 2; i1 = x->i;
i2 = i;
} else {
k = 1;
i1 = i;
}
}
}

int main() {
int i, n;

scanf(“%d”, &n);
max = 0;
k = i1 = i2 = -1;
for (i = 0; i < n; i++) { int a, b, c; scanf("%d%d%d", &a, &b, &c); get(i, a, b, c); get(i, a, c, b); get(i, b, c, a); put(i, a, b, c); put(i, b, a, c); put(i, b, c, a); put(i, c, b, a); put(i, a, c, b); put(i, c, a, b); } printf("%d\n", k); printf("%d", i1 + 1); if (k == 2) printf(" %d", i2 + 1); printf("\n"); return 0; }

Oakley Brings Back the...

Oakley is renowned for pushing the boundaries of eyewear...

Kathy Griffin Shares She...

Comedian Kathy Griffin has never been one to shy...

Why Everyone is Obsessed with the Real Techniques Makeup Sponge

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Why Everyone is Obsessed with the Heavy Duty Duck Tape

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Oakley Brings Back the FatCat from the Archive

Oakley is renowned for pushing the boundaries of eyewear design, and now they are digging deep into their historical vault to bring back a...

Why Everyone is Obsessed with the Reusable Water Balloon Set

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Why Everyone is Obsessed with the Emergency Keychain Power Bank

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Kathy Griffin Shares She Was Hospitalized Over Complications From Colonoscopy

Comedian Kathy Griffin has never been one to shy away from sharing the raw, unfiltered details of her life. In her latest health update,...

Why Everyone is Obsessed with the Mini Handheld Pocket Fan

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Why Everyone is Obsessed with the Electric Power Scrubber Kit

Are you tired of dealing with everyday frustrations that slow down your routine? We've all been...

Mikie Sherrill wants Nets back in New Jersey, but team ‘perfectly happy in Brooklyn’

The political arena and the sports world have collided once again in the tri-state area. New Jersey's newly elected Governor, Mikie Sherrill, has raised...