Cod sursa(job #1832642)

Utilizator AndreiTACAndrei Cristian AndreiTAC Data 20 decembrie 2016 17:45:52
Problema Pod Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <fstream>
#include <deque>
#define N 9901

using namespace std;

int v[1000];

void quick(int l,int r)
{
    int p,aux,i,j;
    j=l-1;
    p=v[r];
    for(i=l;i<=r;i++)
        {
            if(v[i]<p)
                {
                    j++;
                    aux=v[i];
                    v[i]=v[j];
                    v[j]=aux;
                }
        }
    if(l<j-1)
        {
            quick(l,j-1);
        }
    if(j+1<r)
        {
            quick(j+1,r);
        }
}
int main()
{
    ifstream in("pod.in");
    ofstream out("pod.out");
    int n,m,k,i,j=0;
    in>>n>>m>>k;
    for(i=0;i<m;i++)
        {
            in>>v[i];
        }
    quick(0,m-1);
    deque<int>d;
    d.push_back(1);
    for(i=1;i<k;i++)
        {
            if(j<m && i==v[j])
                {
                    d.push_back(0);
                    j++;
                }
            else
                {
                    d.push_back(d.back());
                }
        }
    for(;i<=n;i++)
        {
            if(j<m && i==v[j])
                {
                    d.push_back(0);
                    d.pop_front();
                    j++;
                }
            else
                {
                    d.push_back((d.front()+d.back())%N);
                    d.pop_front();
                }
        }
    out<<d.back();
    return 0;
}