c++:"现在给你长度不定的正整数序列(1~1000,000,000),以-1结尾,请你输出该序列中数值最大的数,以及它在序列中的位置。若有多个相等的最大值,则取最右边的那个。 输入"

想要按照题目写出程序,但有错误,以下是程序:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,sum=0,max=0;
while(a!=-1){
cin>>a;
if(max<a){
max=a;
sum++;
}

}
cout<<max<<" "<<sum;
return 0;

}


#include<bits/stdc++.h>
using namespace std;
int main(){
int a,sum=0,max=0,i=0;
while(a!=-1){
cin>>a;
if(max<a){
max=a;
sum=i;
}
i++;
}
cout<<max<<" "<<sum;
return 0;
}