题解 CF911A 【Nearest Minimums】

引领天下

2018-04-22 19:59:28

Solution

其实此题只用一个排序和一个id就能解决问题 代码: ```cpp #include <bits/stdc++.h> using namespace std; int n,ans=INT_MAX; struct ${ int s,id; }a[100005];//结构体 inline bool cmp($ p,$ q){ if (p.s!=q.s)return p.s<q.s; return p.id<q.id; }//排序 int main(void){ scanf ("%d",&n); for (int i=0;i<n;i++)scanf ("%d",&a[i].s),a[i].id=i; sort (a,a+n,cmp); for (int i=0;i<n&&a[i].s==a[i+1].s;i++)ans=min(ans,a[i+1].id-a[i].id);//找最小值 printf ("%d",ans); } ```