ďťż

Ładny brzuch

Mamy ciąg liczb. Jak obliczyc (pewnie dynamicznie ale dokladniej?) największą mozliwą sumę jego wyrazów, takich, ze podciag nie zawiera zadnych dwoch kolejnych wyrazów z ciągu wyjsciowego?



Masz jakąś sprawdzarkę do tego? Naskrobałem takie coś, ale nie jestem pewien czy to działa (chyba byłoby za prosto - pewnie źle zrozumiałem zadanie):
#include <cstdio> #define max(a,b) ((a>b)?(a):(b)) int main() {  int n;  scanf("%d",&n);  int maxWithPrev = 0;  int maxWithoutPrev = 0;  for(int i=0;i<n;i++)  {   int a;   scanf("%d",&a);   if(a<0) a = 0;   int tmp = maxWithoutPrev;   maxWithoutPrev = maxWithPrev;   maxWithPrev = max(tmp+a,maxWithPrev);  }  printf("%d",max(maxWithPrev,maxWithoutPrev));  return 0; }
Użytkownik bryn edytował ten post 03 luty 2009, 11:02
Oficialnej sprawdzaczki nie mam, ale na moich testach (tych najbardziej zlosliwych xD) daje dobre wyniki wiec pewnie ogolnie jest ok ;] thx

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •