Pagini recente » Cod sursa (job #2273078) | Cod sursa (job #2523231) | Cod sursa (job #1141612) | Cod sursa (job #148649) | Cod sursa (job #2935926)
#include <stdio.h>
#include <stdint.h>
#include <string.h>
void read_uint32_t(FILE *__restrict stream, uint32_t *__restrict nr) {
uint8_t ch;
*nr = 0;
while ((ch = fgetc(stream)) && ('0' <= ch && ch <= '9')) {
*nr *= 10;
*nr += ch - '0';
}
if (ch == '\r') {
fgetc(stream);
}
}
uint32_t __inline__ __attribute((pure)) min(uint32_t o1, uint32_t o2) {
return o1 < o2 ? o1 : o2;
}
uint32_t a[10001];
uint32_t n, w;
int main(void) {
{
FILE *__restrict in = fopen("energii.in", "r");
read_uint32_t(in, &n);
read_uint32_t(in, &w);
memset(a, 0x5F, sizeof(a));
a[0] = 0;
{
int32_t i, j;
uint32_t e, c;
for(i = 0; i < n; ++i) {
read_uint32_t(in, &e);
read_uint32_t(in, &c);
for(j = 10000; j >= e; --j) {
a[j] = min(a[j], a[j - e] + c);
}
}
}
fclose(in);
}
{
FILE *__restrict out = fopen("energii.out", "w");
uint32_t mi = 0x5F5F5F5F;
{
int32_t i;
for(i = w; i < 10001; ++i) {
mi = min(mi, a[i]);
}
}
if (mi == 0x5F5F5F5F) {
fputs("-1\n", out);
} else {
fprintf(out, "%u\n", mi);
}
fclose(out);
}
return 0;
}