Skip to content

Commit

Permalink
Added new solutions
Browse files Browse the repository at this point in the history
  • Loading branch information
saurabhjn76 committed Jan 10, 2017
1 parent ab03f80 commit d0c3413
Show file tree
Hide file tree
Showing 18 changed files with 29,921 additions and 0 deletions.
59 changes: 59 additions & 0 deletions CodeChef/Easy/NAME2.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#include "bits/stdc++.h"
using namespace std;

# define s(n) scanf("%d",&n)
# define sc(n) scanf("%c",&n)
# define sl(n) scanf("%lld",&n)
# define sf(n) scanf("%lf",&n)
# define ss(n) scanf("%s",n)

# define INF (int)1e9
# define EPS 1e-9
# define MOD 1000000007


typedef long long ll;


int main()
{
int t;
cin >> t;
while(t--){
string s1,s2;
cin >> s1 >> s2;
//cout << s1 <<"\n" << s2;

string sho,lon;
if(s1.length()>s2.length())
{
lon=s1;
sho=s2;
}
else
{
lon=s2;
sho=s1;
}
int j=0,flag=1,count=0;
for(int i=0;i<sho.length();i++){
for(;j<lon.length();j++){
if(sho[i]==lon[j]){
count++;
break;
}
else if(j==lon.length()-1){
flag=0;
}

}
}
if(count==sho.length())
printf("YES\n");
else
printf("NO\n");
}

return 0;
}

68 changes: 68 additions & 0 deletions CodeChef/LongChallenge/JAN17/CAPIMOVE.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#include "bits/stdc++.h"
using namespace std;

# define s(n) scanf("%d",&n)
# define sc(n) scanf("%c",&n)
# define sl(n) scanf("%lld",&n)
# define sf(n) scanf("%lf",&n)
# define ss(n) scanf("%s",n)

# define INF (int)1e9
# define EPS 1e-9
# define MOD 1000000007


typedef long long ll;
typedef struct Map
{
ll index;
ll pop;
}Map;
bool ComparePop (const Map& l, const Map& r)
{
return l.pop > r.pop;
}
int main()
{
int t;
cin >> t;
while(t--){
ll n;
sl(n); Map v[n];
for(ll i=0;i<n;i++){
v[i].index=i+1;
sl(v[i].pop);
}
sort(v,v+n,&ComparePop);
int u,vv;
set <int> sett[n+1];
for(int i=0;i<n-1;i++){
s(u);s(vv);
sett[u].insert(u);
sett[vv].insert(vv);
sett[u].insert(vv);
sett[vv].insert(u);
}
/*for(set<int>::iterator it =sett[4].begin();it!=sett[4].end();it++)
printf("%d ",*it );
printf("\n")*/;
for(int i=1;i<n+1;i++){
for(int j=0;j<n;j++){
if((sett[i].find(v[j].index)==sett[i].end())){
printf("%lld ",v[j].index);
break;
}
else if(j==n-1)
printf("0 ");

}
}
printf("\n");
/*for(ll i=0;i<n;i++)
printf("%lld\n",v[i].index);*/

}

return 0;
}

42 changes: 42 additions & 0 deletions CodeChef/LongChallenge/JAN17/CATSDOG.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include "bits/stdc++.h"
using namespace std;

# define s(n) scanf("%d",&n)
# define sc(n) scanf("%c",&n)
# define sl(n) scanf("%lld",&n)
# define sf(n) scanf("%lf",&n)
# define ss(n) scanf("%s",n)

# define INF (int)1e9
# define EPS 1e-9
# define MOD 1000000007


typedef long long ll;

int main()
{
int t;
cin >> t;
while(t--){
ll c,d,l;
sl(c);sl(d);sl(l);
ll total_cats=0;
if(l%4!=0)
printf("no\n");
else{
total_cats=(c-((l-4*d)/4));
// printf("%lld\n",total_cats );
// printf("%lld %lld %lld\n",total_cats,2*d,c );
if(total_cats<=c && total_cats<=2*d && total_cats>=0){
printf("yes\n");

}
else
printf("no\n");
}
}

return 0;
}

62 changes: 62 additions & 0 deletions CodeChef/LongChallenge/JAN17/RESERVOIR.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#include "bits/stdc++.h"
using namespace std;

# define s(n) scanf("%d",&n)
# define sc(n) scanf(" %c",&n)
# define sl(n) scanf("%lld",&n)
# define sf(n) scanf("%lf",&n)
# define ss(n) scanf("%s",n)

# define INF (int)1e9
# define EPS 1e-9
# define MOD 1000000007


typedef long long ll;

int main()
{
int t;
cin >> t;
while(t--){
int n,m;
s(n);s(m);
char a[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
sc(a[i][j]);
}
}
bool flag=true;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
switch(a[i][j]){
case 'W': if(j==m-1 || i==n-1 || j==0)
{
//printf("%d %d\n",i,j);
flag=false;j=m;i=n;break;}
else{
if(!((a[i+1][j]=='B' || a[i+1][j]=='W') && (a[i][j+1]=='B' || a[i][j+1]=='W') && (a[i][j-1]=='B' || a[i][j-1]=='W'))){
//printf("dasd\n");
flag=false;j=m;i=n;break;
}
}

break;
case 'B': if(i!=n-1){
if(a[i+1][j]=='A')
{flag=false;j=m;i=n;break;}
}
break;
}
}
}
if(flag)
printf("yes\n");
else
printf("no\n");
}

return 0;
}

142 changes: 142 additions & 0 deletions CodeChef/LongChallenge/JAN17/Tourists.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
#include "bits/stdc++.h"
using namespace std;

# define s(n) scanf("%d",&n)
# define sc(n) scanf("%c",&n)
# define sl(n) scanf("%lld",&n)
# define sf(n) scanf("%lf",&n)
# define ss(n) scanf("%s",n)

# define INF (int)1e9
# define EPS 1e-9
# define MOD 1000000007


typedef long long ll;

void traverse(vector<int>*sett,bool *visted,int n){
if(visted[n])
return ;
else{
visted[n]=true;
for(vector<int>::iterator it =sett[n].begin();it!=sett[n].end();it++){
// printf("%d-->%d\n",n,*it );
traverse(sett,visted,*it);
}
}
}

bool check_connected(bool *visted,int n){
for(int i=0;i<n;i++){
if(!visted[i])
return false;
}
return true;
}


int main()
{
int t=1;
//cin >> t;
while(t--){
int n,m;
s(n);s(m);
bool connected=false;
int a[n+1][2];
bool visted[n+1];
fill_n(visted,n+1,false);
visted[0]=true;
fill(a[0],a[0]+(n+1)*2,0);
int b[n+1][2];
vector <int> sett[n+1];
int u,v;
int edg[m][2];
int c[n+1][2];
int changed[m][2];
for(int i=0;i<m;i++){
s(u);s(v);
edg[i][0]=u;edg[i][1]=v;
sett[u].push_back(v);
sett[v].push_back(u);
a[u][0]++;
a[v][1]++;
}
traverse(sett,visted,1);
connected=check_connected(visted,n+1);
/*if(connected)
printf("Connected\n");
else
printf("Not Connected\n");*/
int sum=0;int change_count=0;
bool flag=true;
if(connected){
for(int i=1;i<n+1;i++){
// printf("%d-%d\n",a[i][0],a[i][1]);
if((a[i][0]+a[i][1])%2==1)
flag=false;
b[i][0]=a[i][0]-a[i][1];
sum+=b[i][0];
b[i][1]=i;
}
if(sum==0 && flag)
printf("YES\n");
else
printf("NO\n");
//sort_by_index(b,n+1);
if(sum==0 && flag){
for(int i=1;i<n+1;i++){
if(b[i][0]<0){
while(b[i][0]!=0){
for(vector<int>::iterator it =sett[i].begin();it!=sett[i].end();it++){
if(b[*it][0]>0){
b[*it][0]-=2;
b[i][0]+=2;
// printf("Changed:%d %d\n",i,*it);
changed[change_count][0]=*it;
changed[change_count++][1]=i;
}
if(b[i][0]==0)
break;
}
}
}
}
if(change_count==0){
for(int i=0;i<m;i++){
printf("%d %d\n",edg[i][0],edg[i][1]);
}
}
else{
for(int i=0;i<m;i++){
if((a[edg[i][0]][0]-a[edg[i][0]][1])!=0){
for(int j=0;j<change_count;j++){
if(edg[i][0]==changed[j][0] && edg[i][1]==changed[j][1])
{
printf("%d %d\n",edg[i][1],edg[i][0]);
break;
}else
if(j==change_count-1){
printf("%d %d\n",edg[i][0],edg[i][1]);
}
}
}
else{
//printf("----------------\n");
printf("%d %d\n",edg[i][0],edg[i][1]);
}
}
}

}
}
else{
printf("NO\n");
}


}

return 0;
}

Loading

0 comments on commit d0c3413

Please sign in to comment.