File tree Expand file tree Collapse file tree
Problems/Mathematics/Day-02 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /*
2+ TC - O(N^2)
3+ SC - O(N^2)
4+ */
5+
6+
7+ #include < iostream>
8+ #include < vector>
9+ #include < algorithm>
10+ #include < map>
11+
12+ using namespace std ;
13+ long long C[1005 ][1005 ];
14+ const int MOD = 1e9 + 7 ;
15+ void precompute () {
16+ for (int i = 0 ; i <= 1000 ; i++) {
17+ C[i][0 ] = 1 ;
18+ for (int j = 1 ; j <= i; j++) {
19+ C[i][j] = (C[i - 1 ][j - 1 ] + C[i - 1 ][j]) % MOD;
20+ }
21+ }
22+ }
23+
24+ void solve () {
25+ int n, k;
26+ cin >> n >> k;
27+ vector<int > a (n);
28+ map<int , int > total_freq;
29+
30+ for (int i = 0 ; i < n; i++) {
31+ cin >> a[i];
32+ total_freq[a[i]]++;
33+ }
34+
35+ sort (a.rbegin (), a.rend ());
36+
37+ int v = a[k - 1 ];
38+ int needed_count = 0 ;
39+
40+ for (int i = 0 ; i < k; i++) {
41+ if (a[i] == v) needed_count++;
42+ }
43+
44+ int total_count = total_freq[v];
45+
46+ cout << C[total_count][needed_count] << " \n " ;
47+ }
48+
49+ int main () {
50+
51+ precompute ();
52+
53+ int t;
54+ cin >> t;
55+ while (t--) {
56+ solve ();
57+ }
58+ return 0 ;
59+ }
Original file line number Diff line number Diff line change 1+ // #include <bits/stdc++.h>
2+ #include < iostream>
3+ #include < vector>
4+ #include < string>
5+ #include < algorithm>
6+ #include < map>
7+ #include < set>
8+ #include < unordered_map>
9+ #include < queue>
10+ #include < stack>
11+ #include < cmath>
12+ #include < climits>
13+ #define int long long
14+ #define fo (n ) for (int i = 0 ; i < n; i++)
15+ #define fo1 (ii, n ) for (int i=ii; i<n; i++)
16+ #define all (x ) x.begin(), x.end()
17+ #define rall (x ) x.rbegin(), x.rend()
18+ #define pb push_back
19+ #define fi first
20+ #define se second
21+ #define vec (a ) vector<int > a
22+ #define vecn (a,n ) vector<int > a (n)
23+ #define py cout<<" YES" <<endl
24+ #define pn cout<<" NO" <<endl
25+ const int MOD = 1e9 + 7 ;
26+ const int INF = 1e18 ;
27+ using namespace std ;
28+
29+ void solve (){
30+ int n;
31+ cin>>n;
32+ vector<int >a (n);
33+ fo (n)cin>>a[i];
34+ int count=0 ;
35+ int highest=*max_element (a.begin (),a.end ());
36+ int lowest=*min_element (a.begin (),a.end ());
37+ int difference=highest-lowest;
38+ for (int i=0 ;i<n;i++){
39+ for (int j=i+1 ;j<n;j++){
40+ if (abs (a[i]-a[j])==difference)count++;
41+ }
42+ }
43+ cout<<count*2 <<endl;
44+ }
45+
46+ signed main () {
47+ ios_base::sync_with_stdio (false );
48+ cin.tie (0 );
49+ int t;
50+ cin >> t;
51+ while (t--)
52+ solve ();
53+ return 0 ;
54+ }
Original file line number Diff line number Diff line change 1+ // Submission Link
2+ // https://codeforces.com/contest/1771/submission/355396669
3+ // Time complexity = O(n) + O(nlogn)
4+ // Space Comlexity = O(n)
5+
6+
7+
8+
9+
10+ #include < bits/stdc++.h>
11+ using namespace std ;
12+ int main (){
13+ int t;
14+ cin>>t;
15+ while (t--){
16+ long long int n;
17+ cin>>n;
18+ vector<long long int >v (n);
19+ for (int i=0 ; i<n; i++){
20+ cin>>v[i];
21+ }
22+ sort (v.begin (),v.end ());
23+ long long int mini =0 ;
24+ long long int maxi= 0 ;
25+ int i=0 ;
26+ int j = n-1 ;
27+ if (v[0 ]!=v[n-1 ]){
28+ while (v[i]==v[0 ] && i<n){
29+ mini++;
30+ i++;
31+ }
32+ while (v[j]==v[n-1 ] && j>=0 ){
33+ maxi++;
34+ j--;
35+ }
36+ cout<<2 *maxi*mini<<" \n " ;
37+ }
38+ else {
39+ cout<<(n*(n-1 ))<<" \n " ;
40+ }
41+
42+ }
43+ return 0 ;
44+ }
You can’t perform that action at this time.
0 commit comments