Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Feb 22nd, 2013  |  syntax: C++  |  size: 1.04 KB  |  views: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <string>
  5. #include <sstream>
  6. #include <map>
  7. #include <list>
  8. #include <queue>
  9. #include <set>
  10. #include <algorithm>
  11. #include <climits>
  12. #include <cmath>
  13. #include <cassert>
  14. #include <stack>
  15. #include <bitset>
  16. #include <tr1/unordered_map>
  17. #include <tr1/unordered_set>
  18.  
  19. #define mp make_pair
  20. #define ll long long
  21. #define ull unsigned long long
  22.  
  23. const int INF=(INT_MAX>>2);
  24.  
  25. using namespace std;
  26. int a[100000];
  27. bitset<100000+1> f;
  28. int main() {
  29. //      freopen("me.txt","r",stdin);
  30.         //freopen("out.txt","w",stdout);
  31.         int n,k;
  32.         cin>>n>>k;
  33.         for(int i=0;i<n;cin>>a[i++]) ;
  34.         int nusf=0; // number unique so far
  35.         int r2=-1;
  36.         f.reset();
  37.         for(int i=0;i<n && r2==-1;++i) {
  38.                 if(!f[a[i]]) {
  39.                         f[a[i]]=true;
  40.                         ++nusf;
  41.                         if(nusf==k) r2=i;
  42.                 }
  43.         }
  44.         f.reset();
  45.         int r1=-1;
  46.         nusf=0;
  47.         for(int i=r2;i>=0 && r1==-1;--i) {
  48.                 if(!f[a[i]]) {
  49.                         f[a[i]]=true;
  50.                         ++nusf;
  51.                         if(nusf==k) r1=i;
  52.                 }
  53.         }
  54.         if(r2!=-1) cout<<(r1+1)<<" "<<(r2+1);
  55.         if(r2==-1) puts("-1 -1");
  56.     return 0;
  57. }
clone this paste RAW Paste Data