思路:水题,考验实现(implementation)能力,来一波vector[允悲]。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mem(a,b) memset((a),(b),sizeof(a)) const int N=1e5+5; vector<int>g[N]; vector<int>ans; bool vis[N]={false}; int main() { ios::sync_with_stdio(false); cin.tie(0); int n,a; cin>>n; for(int i=1;i<=n;i++) { cin>>a; if(vis[a])continue; if(!g[a].size()||g[a].size()==1)g[a].pb(i); else { if(i-g[a][g[a].size()-1]!=g[a][g[a].size()-1]-g[a][g[a].size()-2])vis[a]=true,g[a].clear(); else g[a].pb(i); } } int cnt=0; for(int i=1;i<N;i++) { if(g[i].size()) { cnt++; ans.pb(i); } } cout<<cnt<<endl; for(int i=0;i<ans.size();i++) { cout<<ans[i]; if(g[ans[i]].size()==1)cout<<' '<<0<<endl; else cout<<' '<<g[ans[i]][g[ans[i]].size()-1]-g[ans[i]][g[ans[i]].size()-2]<<endl; } return 0; }