在解决该题目时出现未知原因的错误导致程序炸了,求助大佬。在线等————
#include<bits/stdc++.h>
#define MaxN 100000
#define MIC Maximum_Intercept_Count
#define MKC Maximum_Killer_Count
using namespace std;
inline int DP_LIS_I(int ans, int Missile[], int input);
inline int DP_LIS_K(int ans, int Missile[], int input);
inline void work (void);
int main() {
work();
return 0;
}
inline void work(void) {
int Missile_Height[MaxN];
int input = 0;
/*if(cin >> input) {
for(int i = 0; i < input ; i++)
cin >> Missile_Height[i];
}*/
while(scanf("%d", &Missile_Height[input]) != EOF)
++input;
int MIC = DP_LIS_I(0, Missile_Height, input);
int MKC = DP_LIS_K(0, Missile_Height, input);
cout << MIC << " " << MKC;
return;
}
inline int DP_LIS_I(int ans, int Missile[], int input) {
int DP[input];
for(int i = 0; i < input; i++)
DP[i] = 1;
for(int i = 0; i < input; i++) {
for(int j = 0; j < i; j++)
if(Missile[j] >= Missile[i])
DP[i] = max(DP[j] + 1, DP[i]);
ans = max(ans, DP[i]);
}
return ans;
}
inline int DP_LIS_K(int ans, int Missile[], int input) {
int DP[input];
for(int i = 0; i < input; i++)
DP[i] = 1;
for(int i = 0; i < input; i++) {
for(int j = 0; j < i; j++)
if(Missile[j] > Missile[i])
DP[i] = max(DP[j] + 1, DP[i]);
ans = max(ans, DP[i]);
}
return ans;
}