Nu aveti permisiuni pentru a descarca fisierul grader_test7.in

Cod sursa(job #1248077)

Utilizator aparfeniAndrei Parfeni aparfeni Data 24 octombrie 2014 16:31:48
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <cstdio>
using namespace std;
int adev[5000001],v[5000001],z[5000001];
int main()
{ freopen("deque.in","r",stdin);
  freopen("deque.out","w",stdout);
  int n,k,i,capat=0,s=0;
  scanf("%d%d",&n,&k);
  for(i=0;i<n;i++)
  { scanf("%d",&v[i]);
  }
  i=0;
  while(i<k)
  { int p=0;
    z[i]=v[i];
    if(z[i]<z[i-1] && i==capat)
    { z[i-1]=z[i];
      z[i]=z[i+1];
      adev[z[i-1]]=0;
      p=1;
    }
    if(z[i]<z[i-1] && z[i]<z[i+1] && i!=capat)
    { z[i]=z[i+1];
      adev[z[i]]=0;
      p=1;
    }
    if(p==0)
    { s=s+z[i];
    }
    i++;
  }
  while(i<=n)
  { z[i]=v[i];
    adev[z[i]]=1;
    if(adev[z[i-k]])
    { capat++;
      s=s+z[i-k];
    }
    if(z[i]<z[i-1] && i==capat)
    { z[i-1]=z[i];
      z[i]=z[i+1];
      adev[z[i-1]]=0;
    }
    if(z[i]<z[i-1] && z[i]<z[i+1] && i!=capat)
    { z[i]=z[i+1];
      adev[z[i]]=0;
    }
    i++;
  }
  printf("%d",s);
  return 0;
}