#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC target("avx,avx2,avx512,fma") template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; } template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; } void dbg_out() { cerr << endl; } template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cerr << ' ' << H; dbg_out(T...); } #ifdef LOCAL #define dbg(...) cerr << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__) #else #define dbg(...) #endif #define ar array #define ll long long #define ld long double #define sza(x) ((int)x.size()) #define all(a) (a).begin(), (a).end() #define PI 3.1415926535897932384626433832795l const int MAX_N = 1e5 + 5; const ll MOD = 1e9 + 7; const ll INF = 1e9; const ld EPS = 1e-9; // -------------------------<RNG>------------------------- // RANDOM NUMBER GENERATOR mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count()); #define SHUF(v) shuffle(all(v), RNG); // Use mt19937_64 for 64 bit random numbers. // ----------------------</BITWISE>-------------------------- /* a=target variable, b=bit number to act upon 0-n */ #define BIT_SET(a,b) ((a) |= (1ULL<<(b))) #define BIT_CLEAR(a,b) ((a) &= ~(1ULL<<(b))) #define BIT_FLIP(a,b) ((a) ^= (1ULL<<(b))) // '!!' to make sure this returns 0 or 1 #define BIT_CHECK(a,b) (!!((a) & (1ULL<<(b)))) #define BITMASK_SET(x, mask) ((x) |= (mask)) #define BITMASK_CLEAR(x, mask) ((x) &= (~(mask))) #define BITMASK_FLIP(x, mask) ((x) ^= (mask)) #define BITMASK_CHECK_ALL(x, mask) (!(~(x) & (mask))) #define BITMASK_CHECK_ANY(x, mask) ((x) & (mask)) // ----------------------</BITWISE END>-------------------------- // ----------------------<MATH>--------------------------- template<typename T> T gcd(T a, T b){return(b?__gcd(a,b):a);} template<typename T> T lcm(T a, T b){return(a*(b/gcd(a,b)));} int add(int a, int b, int c = MOD){int res=a+b; return(res>=c?res-c:res);} int mod_neg(int a, int b, int c = MOD){int res; if(abs(a-b)<c)res=a-b;else res=(a-b)%c; return(res<0?res+c:res);} int mul(int a, int b, int c = MOD){ll res=(ll)a*b; return(res>=c?res%c:res);} int muln(int a, int b, int c = MOD){ll res=(ll)a*b; return ((res%c)+c)%c;} ll mulmod(ll a,ll b, ll m = MOD){ll q = (ll)(((LD)a*(LD)b)/(LD)m); ll r=a*b-q*m;if(r>m)r%=m;if(r<0)r+=m;return r;} template<typename T>T expo(T e, T n){T x=1,p=e;while(n) {if(n&1)x=x*p;p=p*p;n>>=1;}return x;} template<typename T>T power(T e, T n, T m = MOD){T x=1,p=e;while(n) {if(n&1)x=mul(x,p,m);p=mul(p,p,m);n>>=1;}return x;} template<typename T>T extended_euclid(T a, T b, T &x, T &y) {T xx=0,yy=1;y=0;x=1;while(b){T q=a/b,t=b;b=a%b;a=t;\ t=xx;xx=x-q*xx;x=t;t=yy;yy=y-q*yy;y=t;}return a;} template<typename T>T mod_inverse(T a, T n = MOD){T x,y,z=0; T d=extended_euclid(a,n,x,y);return(d>1?-1:mod_neg(x,z,n));} // Permutation and Combination int ncr(int n,int r,int c = MOD){ return mul(mul(ifact[r],ifact[n-r],c),fact[n],c); } // ----------------------</MATH>-------------------------- /****************** Prime Generator **********************/ const int N=1e7+10; int prime[20000010]; bool isprime[N]; int nprime; template <typename T> void Sieve(T a) {nprime = 0;memset(isprime,true,sizeof(isprime)); isprime[1]=false;for(int i=2;i<N;i++){ if(isprime[i]){prime[nprime++]=i;for(int j=2;i*j<N;j++) isprime[i*j]=false;}}} template <typename T> bool miller_rabin(T p, T itt) {if(p<2) return 0 ;if(p==2) return 1;if(p%2==0) return 0 ;ull s = p-1 ;while(s%2==0) s/=2; for(ll i=1;i<=itt;i++) {ull a = rand() % (p-1)+1 , temp = s ; ull mod = modulo(a,temp,(ull)p);while(mod!=1 and mod!=p-1 and temp!=p-1){mod = Mulmod(mod,mod,(ull)p);temp*=2;} if(temp%2==0 and mod!=p-1) return false ;}return true;} template <typename T> inline T PrimeFactors(T n) {ll cnt=0,sum=1;for(int i=0; prime[i]*prime[i]<=n and i<nprime;i++){cnt=0;while(n%prime[i]==0) {cnt++;n/=prime[i];}sum*=(cnt+1);} if(n>1)sum*=2;return sum;} /****************** Prime Generator End **********************/ /****************** Geometry *****************/ template <typename T> inline T PointDistanceHorVer(T x1,T y1,T x2, T y2) {return abs(x1-x2)+abs(y1-y2);} template <typename T> inline T PointDistanceDiagonally(T x1,T y1,T x2, T y2) {return sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));} template <typename T> inline T PointDistanceMinimum(T x1,T y1,T x2, T y2) { T tmp1=abs(x1-x2); T tmp2=abs(y1-y2); T tmp3=abs(tmp1-tmp2); T tmp4=min(tmp1, tmp2); return tmp3+tmp4; } template <typename T> inline T PointDistance3D(T x1,T y1,T z1,T x2,T y2,T z2) {return sqrt(square(x2-x1)+square(y2-y1)+square(z2-z1));} template <typename T> inline T Cube(T a){return a*a*a;} template <typename T> inline T RectengularPrism(T a,T b,T c) {return a*b*c;} template <typename T> inline T Pyramid(T base, T height) {return (1/3)*base*height;} template <typename T> inline T Ellipsoid(T r1,T r2,T r3) {return (4/3)*PI*r1*r2*r3;} template <typename T> inline T IrregualarPrism(T base, T height) {return base*height;} template <typename T> inline T Sphere(T radius) { return (4/3)*PI*radius*radius*radius;} template <typename T> inline T CylinderB(T base, T height) {return base*height;} // base and height template <typename T> inline T CylinderR(T radius, T height) {return PI*radius*radius*height;} // radius and height template <typename T> inline T Cone (T radius,T base, T height) {return (1/3)*PI*radius*radius*height;} /****************** Geometry end *****************/ void solve() { // Add your solution here } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; // cin >> tc; for (int t = 1; t <= tc; t++) { // cout << "Case #" << t << ": "; solve(); } }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}