题意:给一串数,一种操作,问是所有数字相等的操作数;
思路:还是蛮水的,但我看了半天才发现1、2两种操作是一次操作、、、弱爆了、、、判断第k个数开始是否都相等,再判断k之前有几个数不需要删掉的。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,k,i,j,m,flag; int a[500010],rcount; int main() { while(scanf("%d%d",&n,&k)!=EOF) { memset(a,0,sizeof(a)); for(i=1;i<=n;i++) scanf("%d",&a[i]); flag=0; for(i=k+1;i<=n;i++) { if(a[i]!=a[k]) { flag=1;break; } } if(flag) printf("-1\n"); else { rcount=0; for(i=k-1;i>=1;i--) { if(a[i]!=a[k]) { printf("%d\n",i);break; } } if(i==0) printf("0\n"); } } return 0; }
时间: 2024-11-25 15:51:09