#include<bits/stdc++.h> using namespace std; int a[100005],n,m,x,y; void ds(int a[100005]){ int ans = 2147483647; for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (a[i] == a[j]) ans = min(ans, j - i); } } cout << ans << endl; } int main() { freopen("ds.in","r",stdin); freopen("ds.out","w",stdout); cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=m;i++){ cin>>x>>y; for(int i=1;i<=n;i++){ if(a[i]==x)a[i]=y; } ds(a); } return 0; }
共 2 条回复
启发式合并(猜(逃