Cod sursa(job #467090)

Utilizator cosmyoPaunel Cosmin cosmyo Data 28 iunie 2010 11:26:26
Problema Pod Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 1.03 kb
#include<fstream>
#include<deque>
#include<algorithm>
using namespace std;
long first,last,a,b,nr,x,n,m,k,v[1005],l[30];
deque<long> d;
deque<long>::iterator it;
int main()
{ifstream fin("pod.in");
  fin>>n>>m>>k;
  long i;
   for(i=1;i<=m;++i)
	   fin>>v[i];
  fin.close();
 ofstream fout("pod.out");
  sort(v+1,v+m+1);
long  p=1;
  if(m==0)
	{  v[0]=-1;
      p=0;
	}
  if(v[1]==v[p])
	  {++p;
	   d.push_back(0);
	  }
  else
	  d.push_back(1);
  for(i=2;i<=k-1;++i)
    if(v[p]==v[i])
	 {last=d.back();
	  d.push_back(last);
	  ++p;
	 }
	else
	{last=d.back();
	 d.push_back(last);
    }
	last=0;
 if(k!=1)	
 { last=d.back();	
  if(v[p]==k)
    {++p;
	 d.push_back(last);
	}
 else  
	 d.push_back(last+1);
 }
  for(i=k+1;i<=n;++i)
	 {if(v[p]==i)
	  {d.push_back(0);
	   d.pop_front();
	   ++p;
	  }
	  else
	  {last=d.back();
	   first=d.front();
	   if(k==1)
		   last=0;
	   d.push_back((first+last)%9901);
	   d.pop_front();
	  }
	 }
 fout<<d.back()<<'\n';
 fout.close();
 return 0;
}