fork download
  1. //Lib
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<cmath>
  6. #include<ctime>
  7.  
  8. #include<iostream>
  9. #include<algorithm>
  10. #include<vector>
  11. #include<string>
  12. #include<queue>
  13. #include<stack>
  14. #include<set>
  15. #include<map>
  16. using namespace std;
  17. //Macro
  18. #define rep(i,a,b) for(int i=a,tt=b;i<=tt;++i)
  19. #define drep(i,a,b) for(int i=a,tt=b;i>=tt;--i)
  20. #define erep(i,e,x) for(int i=x;i;i=e[i].next)
  21. #define irep(i,x) for(__typeof(x.begin()) i=x.begin();i!=x.end();i++)
  22. #define brep(i,x) for(int i=x;i<=limit;i+=lowbit(i))
  23. #define bdrep(i,x) for(int i=x;i>0;i-=lowbit(i))
  24. #define read() (strtol(ipos,&ipos,10))
  25. #define sqr(x) ((x)*(x))
  26. #define pb push_back
  27. #define PS system("pause");
  28. typedef long long ll;
  29. typedef pair<int,int> pii;
  30. const int oo=~0U>>1;
  31. const double inf=1e100;
  32. const double eps=1e-6;
  33. string name="", in=".in", out=".out";
  34. //Var
  35. struct BIT
  36. {
  37. int s[200008],limit;
  38. inline int lowbit(int x){return x&-x;}
  39. void Set(int l){memset(s,0,sizeof s);limit=l;}
  40. void Update(int x,int delta)
  41. {
  42. brep(i,x)s[i]+=delta;
  43. }
  44. int Get(int x,int y)
  45. {
  46. int ret=0;
  47. bdrep(i,y)ret+=s[i];
  48. bdrep(i,x)ret-=s[i];
  49. return ret;
  50. }
  51. }T;
  52. int n,num[200008],vis[200008],ans;
  53. void Work()
  54. {
  55. scanf("%d",&n);
  56. T.Set(n<<2);
  57. rep(i,1,n<<1)
  58. scanf("%d",num+i);
  59. rep(i,1,n<<1)
  60. {
  61. if(!vis[num[i]])
  62. T.Update(i,1),vis[num[i]]=i;
  63. else
  64. {
  65. ans+=T.Get(vis[num[i]]-1,i)-1;
  66. T.Update(vis[num[i]],-1);
  67. }
  68. }
  69. cout<<ans<<endl;
  70. }
  71. int main()
  72. {
  73. // freopen((name+in).c_str(),"r",stdin);
  74. // freopen((name+out).c_str(),"w",stdout);
  75. // Init();
  76. Work();
  77. return 0;
  78. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty