Showing posts with label MyLibrary. Show all posts
Showing posts with label MyLibrary. Show all posts

Friday, 13 January 2017

HackeRank_weekofcode28_theValueofFriendship

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


int main() {
    int test;
    cin>>test;
    while(test--){
       unsigned long long int sum=0,temper=0,valuer=1;
            int n,m;
            cin>>n>>m;
            vector<long int>vec[n];
            for(int i1=0;i1<m;i1++){
                int a,b;
                cin>>a>>b;
                a--;b--;
                vec[a].push_back(b);
                vec[b].push_back(a);
             }      
        vector<vector<long int> >result;
        vector<bool>visited(n,false);
        for(int i1=0;i1<n;i1++)
            if(visited[i1]==false)
            {
                vector<long int>temp;
                vector<int>dist(n,-1);
                dist[i1]=0;//starting number is always 0..
                queue<int>que;
                temp.push_back(i1);
                que.push(i1);//starting vertex....
                visited[i1]=true;
                while(!que.empty()){
                    int index=que.front();que.pop();
                    for(int i=0;i<vec[index].size();i++){
                        if(dist[vec[index][i]]==-1 ){
                            dist[vec[index][i]]=dist[index]+1;
                            que.push(vec[index][i]);
                            temp.push_back(vec[index][i]);
                            visited[vec[index][i]]=true;
                        }
                    }
                }
            result.push_back(temp);
          }
       
         pair<long int,long int>pr[result.size()];
        for(int i=0;i<result.size();i++){
           long int pp=0,qq=0,rr=0;
            for(int j=0;j<result[i].size();j++){
                pp+=vec[result[i][j]].size();
             //   cout<<result[i][j]<<" ";
            }
           // cout<<endl;
            pr[i] = make_pair(pp,result[i].size());
        }
        sort(pr,pr+result.size());
        reverse(pr,pr+result.size());
        for(int i=0;i<result.size();i++){
            pr[i].first = pr[i].first / 2;
            //cout<<pr[i].first<<" "<<pr[i].second<<endl;
        }
       unsigned long long int temp1=0,temp2=0,glb=0,gman=0,presum=0,cnt=0;
        for(int i=0;i<result.size();i++)
        {
            int flg=0;presum=0;
            if(pr[i].first>0)
            {
                sum+=(pr[i].second-1)*gman;
            }  
            for(int j=1;j<=pr[i].first;j++){
                if(j<pr[i].second){
                   sum+=(j+1)*(j);
                    presum=j*(j+1);
                }
                else {
                    cnt++;
                    //sum+=presum;
                 }
            }
            gman+=presum;
                //cout<<sum<<"\n";
        }
        sum+=cnt*gman;
     
        cout<<sum<<endl;
      }
    return 0;
}

Thursday, 5 January 2017

Prime (SieveOfEratosthenes)

Program:-


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

void SieveOfEratosthenes(int n)
{
    vector<bool>prime(n+1,true);
    for (int p=2; p*p<=n; p++)
    {
        if (prime[p] == true)
        {
            for (int i=p*2; i<=n; i += p)
                prime[i] = false;
        }
    }

    for (int p=2; p<=n; p++)
       if (prime[p])
          cout << p << " ";
}

int main()
{
    int n;
    cin>>n;
    SieveOfEratosthenes(n);
    return 0;

}

Wednesday, 4 January 2017

Power Funtion with Complexity (log(n))

Program:-

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

#define P 1000000007

long long mypow(long long x,long long y) {
    long long R = 1;
    while (y) {
        if (y&1) {
            R = (R * x) % P;
        }
        y/=2;
        x = (x * x) % P;
    }
    return R;
}

int main() {
    long int a,b;
    cin>>a>>b;
    cout<<mypow(a,b);
    return 0;
}