Pagini recente » Cod sursa (job #903019) | Cod sursa (job #2846822) | Cod sursa (job #1706524) | Cod sursa (job #2357015) | Cod sursa (job #466537)
Cod sursa(job #466537)
Utilizator |
Cezar Mocan CezarMocan |
Data |
26 iunie 2010 22:40:09 |
Problema |
Pod |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.74 kb |
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <deque>
#define maxK 22
#define maxM 1020
#define mod 9901
using namespace std;
int N, M, K;
int pos[maxM];
deque <int> D;
int main() {
int i, j;
freopen("pod.in", "r", stdin);
freopen("pod.out", "w", stdout);
scanf("%d%d%d", &N, &M, &K);
for (i = 1; i <= M; i++)
scanf("%d", &pos[i]);
sort(pos + 1, pos + M + 1);
j = 1;
D.push_back(1);
for (i = 1; i < K; i++) {
if (pos[j] == i) {
D.push_back(0);
j++;
}
else
D.push_back(D.back());
}
for (i = K; i <= N; i++) {
int curr = D.back() + D.front();
if (pos[j] == i) {
curr = 0;
j++;
}
curr = curr % mod;
D.push_back(curr);
D.pop_front();
}
printf("%d\n", D.back());
return 0;
}