Skip to content

Commit 2d199cf

Browse files
committed
Codechef April LOng Challenge Solutions
1 parent a55840d commit 2d199cf

File tree

6 files changed

+222
-0
lines changed

6 files changed

+222
-0
lines changed

Codechef/31149629.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
int main() {
6+
int t;
7+
cin>>t;
8+
while(t--){
9+
int n;
10+
cin>>n;
11+
int arr[n];
12+
for(int i=0;i<n;i++)cin>>arr[i];
13+
int dist=0;
14+
int prev=-6;
15+
bool flag=true;
16+
for(int i=0;i<n;i++){
17+
if(arr[i]==1){
18+
dist=i-prev;
19+
prev=i;
20+
if(dist<6){
21+
flag=false;
22+
break;
23+
}
24+
}
25+
}
26+
if(flag){
27+
cout<<"YES"<<endl;
28+
}
29+
else cout<<"NO"<<endl;
30+
31+
32+
}
33+
34+
35+
36+
}

Codechef/31151642.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include <bits/stdc++.h>
2+
# define mod 1000000007
3+
using namespace std;
4+
typedef long long int ll;
5+
int main() {
6+
int t;
7+
cin>>t;
8+
while(t--){
9+
int n;
10+
cin>>n;
11+
int arr[n];
12+
for(int i=0;i<n;i++)cin>>arr[i];
13+
sort(arr,arr+n);
14+
ll sum=0;
15+
for(int i=n-2;i>=0;i--){
16+
if((arr[i]-(n-i-1))>=0)arr[i]-=(n-i-1);
17+
else arr[i]=0;
18+
19+
}
20+
// for(int i=0;i<n;i++)cout<<arr[i]<<" ";
21+
// cout<<endl;
22+
for(int i=0;i<n;i++){sum=(sum+arr[i])%mod;}
23+
24+
cout<<sum%mod<<endl;
25+
26+
}
27+
28+
29+
30+
}

Codechef/31172796.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
typedef long long int ll;
4+
int main() {
5+
ll t;
6+
cin>>t;
7+
while(t--){
8+
ll x,k;
9+
cin>>x>>k;
10+
ll arr[1000000];
11+
memset(arr,0,sizeof arr);
12+
ll omega=0;
13+
ll i=0;
14+
while(x%2==0){
15+
arr[i++]=2;
16+
x=x/2;
17+
}
18+
19+
for (ll j=3;j<sqrt(x);j=j+2){
20+
21+
while(x%j==0){
22+
arr[i++]=j;
23+
x=x/j;
24+
}
25+
}
26+
27+
if(x>2)arr[i++]=x;
28+
29+
30+
if(i>=k)cout<<"1"<<endl;
31+
else cout<<"0"<<endl;
32+
33+
}
34+
35+
}

Codechef/31575389.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
int main() {
5+
int t;
6+
cin>>t;
7+
while(t--){
8+
int n;
9+
cin>>n;
10+
int days;
11+
if(n==1){
12+
cout<<"1\n"<<"1 "<<"1\n";
13+
}
14+
else{
15+
days=n/2;
16+
cout<<days<<"\n";
17+
for(int i=1;i<=n;i+=2){
18+
if(n%2==1&&i==1){cout<<"3 1 2 3\n";i+=1;}
19+
else{cout<<"2 "<<i<<" "<<i+1<<"\n";}
20+
21+
}
22+
}
23+
}
24+
25+
26+
return 0;
27+
}

Codechef/31662600.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
typedef long long int ll;
4+
int main() {
5+
int t;
6+
cin>>t;
7+
while(t--){
8+
int n,k,m;
9+
cin>>n>>m>>k;
10+
int arr[n][k];
11+
int freq[n][m];
12+
memset(freq,0,sizeof freq);
13+
for(int i=0;i<n;i++){for(int j=0;j<k;j++){cin>>arr[i][j];}}
14+
15+
int out[n];
16+
for(int i=0;i<n;i++){
17+
for(int j=0;j<k;j++){
18+
freq[i][arr[i][j]-1]++;
19+
}
20+
}
21+
22+
23+
24+
// for(int i=0;i<n;i++){
25+
// for(int j=0;j<m;j++){
26+
// cout<<freq[i][j]<<" ";}cout<<endl;}
27+
28+
29+
for(int i=0;i<n;i++){
30+
int max_index=0;
31+
int max_option=0;
32+
for(int j=0;j<m;j++){
33+
if(freq[i][j]>max_option){
34+
max_option=freq[i][j];
35+
max_index=j+1;
36+
}
37+
}
38+
out[i]=max_index;
39+
40+
}
41+
42+
43+
44+
for(int i=0;i<n;i++){cout<<out[i]<<" ";}
45+
cout<<endl;
46+
}
47+
48+
}

Codechef/31695056.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
typedef long long int ll;
4+
5+
int main() {
6+
int t;
7+
cin>>t;
8+
while(t--){
9+
ll n;
10+
cin>>n;
11+
ll arr[n];
12+
for(ll i=0;i<n;i++)cin>>arr[i];
13+
14+
ll new_arr[n];
15+
for(ll i=0;i<n;i++){
16+
if(arr[i]%2==1||arr[i]%2==-1){new_arr[i]=0;}
17+
else if(arr[i]%4==0){new_arr[i]=4;}
18+
else{new_arr[i]=1;}
19+
}
20+
//for(int i=0;i<n;i++)cout<<new_arr[i]<<" ";
21+
//cout<<endl;
22+
ll result=0;
23+
ll cumsum=0;
24+
unordered_map<ll,ll> sum;
25+
26+
27+
28+
for(ll i=0;i<n;i++){
29+
cumsum+=new_arr[i];
30+
if(cumsum==1){;result++;}
31+
if(sum.find(cumsum-1)!=sum.end()){
32+
33+
result+=(sum[cumsum-1]);
34+
}
35+
36+
sum[cumsum]++;
37+
}
38+
//cout<<result<<endl;
39+
ll total=(n*(n+1))/2;
40+
//cout<<total<<endl;
41+
ll final=total-result;
42+
cout<<final<<endl;
43+
44+
}
45+
46+
}

0 commit comments

Comments
 (0)