B. Bob and Numbers
Tutorial
Code(C++)
Code(Python)
E. Sub-Array
Tutorial$$$ \frac[n*(n-1)][2] $$$
To solve this problem, from the problem's description a beautiful subarray consists atleast two different element. So there atleast two elements exist in a subarray to fulfill this condition. Then the total combinations of subarray is
Code(C++)
#include <iostream>
using namespace std;
using ll = long long;
ll f(int x){
return (ll)x*((ll)x-1)/2;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin>>T;
for(int t=1;t<=T;t++)
{
int n;
cin>>n;
ll sum = f(n);
int a[n];
for(int& i:a)cin>>i;
int j = 0;
while(j<n)
{
int key = a[j];
int m = 1;
while(j<n-1 && key == a[j+1])
{
m++;
j++;
}
sum-=f(m);
j++;
}
cout<<"Case "<<t<<": "<<sum<<"\n";
}
return 0;
}
Code(Python)
def fn(x) -> int :
return int(x*(x-1)*0.5)
for i in range(int(input())):
n = int(input())
s = fn(n)
l = [int(i) for i in input().split()]
j = 0
while j<n:
key = l[j]
m = 1
while j<n-1 and key == l[j+1]:
m+=1
j+=1
s -= fn(m)
j+=1
print(f'Case {i+1}: {s}')
G. Bowling Figure
Tutorial
This problem is super simple and easiest problem of this contest. To solve this problem, count wicket and run by looping all over the string and make a funtion to check the values of over,run and wicket have singular or plural. Then just print according to output's format.
Code(C++)
#include <iostream>
#include <cmath>
using namespace std;
void c(int n)
{
if(n>1)cout<<'s';
}
int main(){
int t;
cin>>t;
while(t--)
{
string s;
cin>>s;
int r=0,o=s.size(),w=0;
int x = ceil((float)o/6);
for(auto i:s)
{
if(i=='W')w++;
else r+=i-'0';
}
cout<<o/6<<'.'<<o%6<<" "<<"Over";
c(x);
cout<<" "<<r<<" "<<"Run";
c(r);
cout<<" "<<w<<" "<<"Wicket";
c(w);
cout<<".\n";
}
return 0;
}
Code(Python)
def c(n):
return n>1 and 's' or ''
for _ in [0]*int(input()):
s = input()
o,r,w=len(s),0,0
for j in s:
if j=='W':w+=1
else:r+=int(j)
print(f'{o//6}.{o%6} Over{c(o/6)} {r} Run{c(r)} {w} Wicket{c(w)}.')