比赛 NOIP模拟赛1 评测结果 AAAAAAAAAA
题目名称 叉叉 最终得分 100
用户昵称 偽りの神に抗え 运行时间 0.027 s
代码语言 C++ 内存使用 0.70 MiB
提交时间 2018-02-08 19:58:23
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. const int maxn=100005;
  7. int n,np=0,last[30];
  8. bool vis[30];
  9. char s[maxn];
  10. struct data
  11. {
  12. int x,y;
  13. friend bool operator<(data a,data b)
  14. {
  15. return a.x<b.x;
  16. }
  17. }a[maxn];
  18. int main()
  19. {
  20. freopen("xxxx.in","r",stdin);
  21. freopen("xxxx.out","w",stdout);
  22. memset(vis,0,sizeof(vis));
  23. scanf("%s",&s[1]);
  24. n=strlen(&s[1]);
  25. for(int i=1;i<=n;i++)
  26. {
  27. s[i]-='a';
  28. if(vis[s[i]])vis[s[i]]=0,a[last[s[i]]].y=i;
  29. else vis[s[i]]=1,last[s[i]]=++np,a[np].x=i;
  30. }
  31. n=np;
  32. sort(a+1,a+n+1);
  33. int ans=0;
  34. for(int i=1;i<=n;i++)
  35. {
  36. for(int j=i+1;j<=n&&a[j].x<a[i].y;j++)
  37. if(a[j].y>a[i].y)ans++;
  38. }
  39. cout<<ans;
  40. return 0;
  41. }