Accepted solution

1201A - Important Exam

Open original problem
Source code

#include <iostream>

#include<vector>

#include<string>

#include<string.h>

#include<math.h>

#include<set>

#include<map>

#include<list>

#include<stack>

#include<queue>

#include <fstream>

#include<iterator>

#include<algorithm>

#include <iomanip>      // std::setprecision

#include<unordered_set>

#include<sstream>

/* ==================================================

  |                                                  |

  |    Author: *** S. M. Sabiul Hajjaj Sabit ***     |

  |       Last Edit:  July,25,2019                    |

   ================================================== */

///***global declaration***///

#define all(arr) arr.begin(),arr.end()

#define pb push_back

#define mp make_pair

#define lb lower_bound

#define up upper_bound

#define sz(x) x.size()

#define min3(a,b,c)  min(min(a,b),c)

#define max3(a,b,c)  max(max(a,b),c)

#define lli long long int

#define prnt(x) cout<<x<<endl

#define in1(x) cin>>x

#define in12(x,y) cin>>x>>y

using namespace std;

template <typename T>long long int power(T a, T b)

{

    long long int pow=1;

    for(int i=0; i<b; i++)

        pow *= a;

    return pow;

}

bool isPrime(int n)

{

    int ans=true;

    for(int i=2; i<=n/2; i++)

    {

        if(n%i == 0)

        {

            ans = false;

            break;

        }

    }

    if (ans) return true;

    else return false;

}

/**** ascending sort vector of pair basis fd 2nd element******/

//sort(arr.begin(), arr.end(),sortbysec);

bool sortbysec(const pair<int,int> &a,const pair<int,int> &b)

{

    //return (a.second < b.second); //ascending

    return (a.second > b.second);  //descending

}

/////*********Write Code From Here*********///

int main()

{

    int n,m;

    cin>>n>>m;

    vector<string>arr;

    int ans[1200]= {0,0,0,0,0};

    for(int i=0; i<n; i++)

    {

        string s;

        cin>>s;

        arr.pb(s);

    }

    for(int i=0; i<m; i++)

    {

        cin>>ans[i];

    }

    int mx=0,index;

    int count=0;

    int a,b,c,d,e;

    for(int i=0; i<m; i++)

    {

        mx=0;

        a=0,b=0,c=0,d=0,e=0;

        for(int j=0; j<arr.size(); j++)

        {

            string s=arr[j];

            if(s[i]=='A')a++;

            else if(s[i]=='B')b++;

            else if(s[i]=='C')c++;

            else if(s[i]=='D' )d++;

            else if(s[i]=='E' )e++;

        }

        mx+= max(a,max(b,max(c,max(d,e))));

        count+= mx*ans[i];

    }

    cout<<count<<endl;

}
Join the discussion

Add your comment