Skip to main content

codeforces-puzzles solution

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
int main()
{
 int n,m;
 cin>>n>>m;
 vector<int> vect;
 map<int,int> mp;
 for(int i=0;i<m;i++)
 {
  int x;
  cin>>x;
  mp[x]++;
  vect.push_back(x);
 }
 sort(vect.begin(),vect.end());
 int small=vect[n-1]-vect[0];
 for(int i=0;i<vect.size()-n+1;i++)
 {
  int d=vect[i+n-1]-vect[i];
  if(small>d)
   small=d;
 }
 int flag=1;
 for(auto k:mp)
 {
  if(k.second>=n)
  {
   cout<<"0";
   flag=0;
   break;
  }
 }
 if(flag==1)
 {
  cout<<small;
 }
 return 0;
}

Comments

Popular posts from this blog

Codeforces-Dubstep solution

#include < bits / stdc ++. h > using namespace std ; int main () { string str ; getline ( cin , str ); int index = str . find ( "WUB" ); int count = 0 ; while ( index !=- 1 ) { str . replace ( index , 3 , " " ); //str.erase(str.begin()+index,str.begin()+index+3); index = str . find ( "WUB" ); } cout << str ; return 0 ; }

Counting the number of strongly connected sub graph

#include<bits/stdc++.h> using namespace std; class graph {     int v;     list<int> *adj; public:     graph(int v)     {         this->v=v;         adj=new list<int>[v];     }     void add_edge(int v,int w)     {         adj[v].push_back(w);         adj[w].push_back(v);     }     void dfs(int start,bool visited[]);     void counted(int start); }; void graph:: dfs(int start,bool visited[]) {     visited[start]=true;     for(auto it=adj[start].begin();it!=adj[start].end();it++)     {         if(!visited[*it])         {             dfs(*it,visited);         }     } } void graph:: counted(int start) {     bool *visited=new bool[v];     for(int i=0;i<v;i++)         visited[i]=false;     int count=0;     visited[start]=true;     for(int k=0;k<v;k++)     {         if(!visited[k])         {             dfs(k,visited);             count++;         }     }     cout<<"count is "<<count<<endl; } int main() {     int v;     cout<<"E

codeforces-Anton and Danik

#include < bits / stdc ++. h > using namespace std ; int main () { long n ; string str ; cin >> n ; cin >> str ; long count = 0 , index ; index = str . find ( "A" ); while ( index !=- 1 ) { count ++; str . erase ( str . begin ()+ index , str . begin ()+ index + 1 ); index = str . find ( "A" ); } if ( count > n - count ) cout << "Anton" ; else if ( count < n - count ) cout << "Danik" ; else cout << "Friendship" ; return 0 ; }