Pagini recente » Cod sursa (job #184063) | Cod sursa (job #1876661) | Cod sursa (job #281852) | Cod sursa (job #2180173) | Cod sursa (job #2935930)
#include <stdio.h>
#include <stdint.h>
#include <string.h>
void read_uint64_t(FILE *__restrict stream, uint64_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);
}
}
uint64_t __inline__ __attribute((pure)) min(uint64_t o1, uint64_t o2) {
return o1 < o2 ? o1 : o2;
}
uint64_t a[20001];
uint64_t n, w;
int main(void) {
{
FILE *__restrict in = fopen("energii.in", "r");
read_uint64_t(in, &n);
read_uint64_t(in, &w);
memset(a, 0x5F, sizeof(a));
a[0] = 0;
{
int64_t i, j;
uint64_t e, c;
for(i = 0; i < n; ++i) {
read_uint64_t(in, &e);
read_uint64_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");
uint64_t mi = 0x5F5F5F5F5F5F5F5F;
{
int64_t i;
for(i = w; i < 10001; ++i) {
mi = min(mi, a[i]);
}
}
if (mi == 0x5F5F5F5F5F5F5F5F) {
fputs("-1\n", out);
} else {
fprintf(out, "%llu\n", mi);
}
fclose(out);
}
return 0;
}