D. Teams Forming Codeforces Solution Kotlin Heroes: Practice 7

D. Teams Forming Codeforces Solution

There are n students in a university. The number of students is even. The i-th student has programming skill equal to ai.

The coach wants to form n2 teams. Each team should consist of exactly two students, and each student should belong to exactly one team. Two students can form a team only if their skills are equal (otherwise they cannot understand each other and cannot form a team).

Students can solve problems to increase their skill. One solved problem increases the skill by one.

The coach wants to know the minimum total number of problems students should solve to form exactly n2 teams (i.e. each pair of students should form a team). Your task is to find this number.

The first line of the input contains one integer n (2≤n≤100) — the number of students. It is guaranteed that n is even.

The second line of the input contains n integers a1,a2,…,an (1≤ai≤100), where ai is the skill of the i-th student.

Print one number — the minimum total number of problems students should solve to form exactly n2 teams.

5 10 2 3 14 5


1 100


In the first example the optimal teams will be: (3,4), (1,6) and (2,5), where numbers in brackets are indices of students. Then, to form the first team the third student should solve 1 problem, to form the second team nobody needs to solve problems and to form the third team the second student should solve 4 problems so the answer is 1+4=5.

In the second example the first student should solve 99 problems to form a team with the second one.


#include <bits/stdc++.h>
using namespace std;

#define ebar_khela_hoppe    int main (void)
#define bair_ho             return 0
#define sf                  scanf
#define pf                  printf
#define ssf                 sscanf
#define spf                 sprintf
#define fsf                 fscanf
#define fpf                 fprintf
#define fast                ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define scase               sf ("%d",&tc)
#define sn                  sf ("%d",&n)
#define whilecase           while (tc--)
#define eof                 while (cin >> n)
#define forloop             for (pos=1; pos<=tc; pos++)
#define arrayloop           for (i=0; i<n; i++)
#define cinstr              cin >> str
#define getstr              getline (cin,str)
#define pcase               pf ("Case %d: ",pos)
#define vi                  vector <int>
#define si                  set <int>
#define vs                  vector <string>
#define pii                 pair <int,int>
#define mii                 map <int,int>
#define pb                  push_back
#define in                  insert
#define llu                 unsigned long long
#define lld                 long long
#define U                   unsigned int
#define endl                "\n"

const int MOD = 1000000007;
const int MAX = 1000005;

int SetBit (int n, int x) { return n | (1 << x); }
int ClearBit (int n, int x) { return n & ~(1 << x); }
int ToggleBit (int n, int x) { return n ^ (1 << x); }
bool CheckBit (int n, int x) { return (bool)(n & (1 << x)); }

int arr[105];

    	freopen ("input.txt","r",stdin);
    	freopen ("output.txt","w",stdout);

    int n,i,ans;

    while (sf ("%d",&n) != EOF)
        for (i=0; i<n; i++)
            sf ("%d",&arr[i]);

        sort (arr,arr+n);

        ans = 0;

        for (i=1; i<n; i+=2)
            ans += arr[i]-arr[i-1];

        pf ("%d\n",ans);


June Long Challenge 2021 Solutions

March Long Challenge 2021 Solutions

April Long Challenge 2021 Solutions

Codechef Long Challenge Solutions

February Long Challenge 2021

January Long Challenge 2021

November Challenge 2020 SOLUTION CodeChef

October Lunchtime 2020 CodeChef SOLUTIONS

Related :

Related :

Leave a Comment

Please Click on 1 or 2 Ads to help us run this site.