Cod sursa(job #588854)

Utilizator andrei.finaruFinaru Andrei Emanuel andrei.finaru Data 9 mai 2011 19:58:25
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<deque>
using namespace std;
ifstream f("divk.in");
ofstream g("divk.out");
int n,a,b,k,x;
long long nr,s,s1;
deque<int> d;
deque<int>::iterator it,o;
int main()
{
	int i;
	f>>n>>k>>a>>b;
	for(i=1;i<=n;++i)
		{ f>>x;
		  d.push_back(x);
		  if(i>b) s-=d.front(),d.pop_front();
		  s+=x;
		  s1=s;
		  //g<<s<<'\n';
		  if(!(s%k)) ++nr;
		  o=d.end();
		  //o-=a;
		  it=d.begin();
		  for(int j=0;j<a&&o!=it;++j) --o;
		  //while(o-it>a&&it!=o) ++it;
		  while(it!=o)
			  { s1-=*it;
			    //g<<s1<<"***\n";
			    if(!(s1%k)) ++nr;
				++it;
			  }
		}
	g<<nr<<'\n';
	f.close(); g.close();
	return 0;
}