Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin ("cool.in");
- ofstream fout ("cool.out");
- int a[1005] , n , k , op , lgmax , nrlgmax;
- bitset < 1005 > fr;
- inline void OP1()
- {
- int mx , mn , x;
- bool ok = true;
- mx = 0;
- mn = 1005;
- for(int i = 1 ; i <= k ; i++)
- {
- x = a[i];
- mx = max(mx , x);
- mn = min(mn , x);
- if(fr[x] == 1)
- ok = false;
- fr[x] = 1;
- }
- if(ok == true)
- fout << fr . count() << "\n";
- else if(mx - mn == (k - 1))
- fout << mx << "\n";
- }
- inline void OP2()
- {
- int mx , mn , x;
- bool ok;
- for(int i = 1 ; i <= n ; i++)
- {
- fr . reset();
- mx = 0;
- mn = 1005;
- ok = true;
- for(int j = i ; j <= n && ok == true ; j++)
- {
- x = a[j];
- if(fr[x] == 1)
- ok = false;
- fr[x] = 1;
- mx = max(mx , x);
- mn = min(mn , x);
- if(mx - mn == (j - i) && ok == true)
- {
- if(lgmax < j - i + 1)
- {
- lgmax = j - i + 1;
- nrlgmax = 1;
- }
- else if(lgmax == j - i + 1)
- nrlgmax++;
- }
- }
- }
- fout << lgmax << "\n" << nrlgmax << "\n";
- }
- int main()
- {
- fin >> op;
- fin >> n >> k;
- for(int i = 1 ; i <= n ; i++)
- fin >> a[i];
- if(op == 1)
- OP1();
- else
- OP2();
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement