#include <stdio.h> int main() { // wczytujemy po kolei butelki i patrzymy, ktora moze byc najstarsza // jak jest jakas starsza niz poprzednie, to zapamietujemy jej rok jesli jest ona dla nas osiagalna // osiagalnosc buletki oznacza, ze nie wyciagniemy wiecej niz k butelek - nic wiecej nas nie interesuje. // osiagalnosc itej butelki, to powierzchnia rombu nad nia int n,k; // 1 <= n <= 2000; 1 <= k <= n(n+1)/2 int min = 1000000; scanf("%d %d\n", &n, &k); for(int i=1;i<=n;i++) { for(int j=0;j<i;j++) { int y; scanf("%d", &y); if (((i-j)*(j+1) <= k) && (y<min)) min = y; //printf("%d x %d -> %d, koszt = %d, %d\n", i-j, j+1, y, (i-j)*(j+1), min); } } printf("%d\n", min); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> int main() { // wczytujemy po kolei butelki i patrzymy, ktora moze byc najstarsza // jak jest jakas starsza niz poprzednie, to zapamietujemy jej rok jesli jest ona dla nas osiagalna // osiagalnosc buletki oznacza, ze nie wyciagniemy wiecej niz k butelek - nic wiecej nas nie interesuje. // osiagalnosc itej butelki, to powierzchnia rombu nad nia int n,k; // 1 <= n <= 2000; 1 <= k <= n(n+1)/2 int min = 1000000; scanf("%d %d\n", &n, &k); for(int i=1;i<=n;i++) { for(int j=0;j<i;j++) { int y; scanf("%d", &y); if (((i-j)*(j+1) <= k) && (y<min)) min = y; //printf("%d x %d -> %d, koszt = %d, %d\n", i-j, j+1, y, (i-j)*(j+1), min); } } printf("%d\n", min); return 0; } |