求助,为什么洛谷上面的评测与本机上的结果不一致 代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
int dd[100100];
using namespace std;
int main(){
int n=0;
int f;
cin>>f;
while(cin.good()){
dd[n]=f;
n++;
cin>>f;
}
vector<int> v;
v.push_back(dd[0]);
/*for(int i=0;i<v.size();i++){
cout<<v[i]<<" ";
}*/
/*cout<<endl;*/
for(int i=1;i<n;i++){
if(dd[i]<=v[v.size()-1]){
v.push_back(dd[i]);
/*for(int j=0;j<v.size();j++){
cout<<v[j]<<" ";
}
cout<<endl;*/
}else if(dd[i]>v[0]){
v[0]=dd[i];
}else{
int p1=0,p2=v.size()-1;
int mid=(p1+p2)/2;
while(p1<mid){
if(dd[i]>v[mid]){
p2=mid;
}else{
p1=mid;
}
mid=(p1+p2)/2;
}
/*for(int j=0;j<v.size();j++){
cout<<v[j]<<" ";
}*/
v[p2]=dd[i];
}
}
cout<<v.size()<<endl;
vector<int> vv;
vv.push_back(dd[0]);
/*for(int i=0;i<v.size();i++){
cout<<v[i]<<" ";
}*/
/*cout<<endl;*/
for(int i=1;i<n;i++){
if(dd[i]>vv[vv.size()-1]){
vv.push_back(dd[i]);
/*for(int j=0;j<vv.size();j++){
cout<<vv[j]<<" ";
}
cout<<endl;*/
}else if(dd[i]<vv[0]){
vv[0]=dd[i];
}else{
int p1=0,p2=vv.size()-1;
int mid=(p1+p2)/2;
while(p1<mid){
if(dd[i]<=vv[mid]){
p2=mid;
}else{
p1=mid;
}
mid=(p1+p2)/2;
}
/*for(int j=0;j<vv.size();j++){
cout<<vv[j]<<" ";
}
cout<<endl;*/
vv[p2]=dd[i];
}
}
cout<<vv.size()<<endl;
/*
for(int i=0;i<n;i++){
for(int j=i-1;j>=0;j--){
if(dd[i][0]<=dd[j][0]){
dd[i][1]=max(dd[j][1]+1,dd[i][1]);
}
}
}
int maxn=-1;
for(int i=0;i<n;i++){
maxn=max(maxn,dd[i][1]);
}
cout<<maxn+1<<endl;
for(int i=0;i<n;i++){
for(int j=i-1;j>=0;j--){
if(dd[i][0]>dd[j][0]){
dd[i][2]=max(dd[i][2],dd[j][2]+1);
}
}
}
maxn=-1e9;
for(int i=0;i<n;i++){
maxn=max(maxn,dd[i][2]);
}
cout<<maxn+1;*/
return 0;
}