AlexNeagu11

Subsiruri

Jan 28th, 2022
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream fin("subsiruri.in");
  4. ofstream fout("subsiruri.out");
  5. const int NMAX = 1005;
  6. const int MOD = 9901;
  7. int S[NMAX],V[NMAX],D[NMAX];
  8. int N;
  9. int main() {
  10. fin >> N;
  11. for (int i = 1; i <= N; i++) {
  12. fin >> V[i];
  13. }
  14.  
  15. V[++N] = 30005;
  16. D[1] = 1;
  17. S[1] = 1;
  18.  
  19. for (int i = 2; i <= N; i++) {
  20. int MAX = 0;
  21. for (int j = 1; j <= N; j++) {
  22. if (V[i] > V[j]) {
  23. if (D[j] > MAX) {
  24. MAX = D[j];
  25. S[i] = S[j];
  26. }
  27. else if (D[j] == MAX)
  28. {
  29. S[i] += S[j];
  30. S[i] %= MOD;
  31. }
  32. }
  33. }
  34. if (MAX == 0) {
  35. S[i] = 1;
  36. }
  37. D[i] = MAX + 1;
  38. }
  39. fout << D[N] - 1 << "\n" << S[N];
  40. return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment