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

Everything You Need to...

📢 As an Amazon Associate, I earn from qualifying...

China’s largest memory chipmaker...

China's semiconductor ambitions are facing a fresh financial dilemma...

The Real Truth About...

📢 As an Amazon Associate, I earn from qualifying...

Is Desk Productivity Tools...

📢 As an Amazon Associate, I earn from qualifying...

The Outer Worlds 2...

Gamers and RPG enthusiasts have reason to celebrate as...

Why Travel Organization Gear...

📢 As an Amazon Associate, I earn from qualifying...

Everything You Need to Know About Portable Cooling Gear Right Now

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Portable Cooling Gear?The Portable Cooling Gear...

China’s largest memory chipmaker sparks fears of a cash drain before blockbuster IPO

China's semiconductor ambitions are facing a fresh financial dilemma as ChangXin Memory Technologies (CXMT), the nation's premier DRAM chipmaker, prepares for a highly anticipated...

The Real Truth About Bedroom Aesthetic Decor Before You Buy

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Bedroom Aesthetic Decor?The Bedroom Aesthetic Decor...

Is Desk Productivity Tools Worth Your Money Here Is Our Full Review

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Desk Productivity Tools?The Desk Productivity Tools...

The Outer Worlds 2 v1.2.0.1-TENOKE

Gamers and RPG enthusiasts have reason to celebrate as Obsidian Entertainment's acclaimed franchise returns with new developments. The highly anticipated sequel to the award-winning...

Why Travel Organization Gear Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Travel Organization Gear?The Travel Organization Gear...

Why Everyone Is Talking About the Car Detailing Essentials

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Car Detailing Essentials?The Car Detailing Essentials...

Why Everyone Is Talking About the Smart Home Hacks

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Smart Home Hacks?The Smart Home Hacks...

Why Everyone Is Talking About the Viral Kitchen Gadgets

📢 As an Amazon Associate, I earn from qualifying purchases.💰 Official Price: Check on Amazon🌟 Why Buy the Viral Kitchen Gadgets?The Viral Kitchen Gadgets...